Menu

#356 Transform the table handling for the viewer to pointers

v1.1.x
closed
None
v1.1.1
Change Request
2018-11-10
2018-07-11
Erik Hänel
No

The handling of the tables for the table viewer and the table editor includes unneccessary copying of memory at a least one place. Therefore transform the logic to pointer handling. This will also include possible checks for open memory blocks in the used queues.

Analysis:

This is a quite large change. The main point is to ensure that the pointers are not freed accidentally. The recommendation is to create a container class, which will ensure that the pointer is unique and only freed, if needed. This can be done by moving the ownership of the pointer and resetting the copied element during each copy construction.

Implementation:

  • Implementation: The implementation was done as proposed by the analysis. The container class was declared as a template class to be able to handle different data types
  • Revision: [r367]
  • Implementation test: The implementation tests was done by calling show TABLE() and edit TABLE(). All detected deviations were solved.

Documentation:

  • ChangesLog: updated
  • Comments: The new class is commented sufficiently
  • Documentation articles: Not needed - internal change
  • Language files: Not needed - internal change

Tests:

This change was tested thoroughly in production tests. All deviations were resolved,

Related

Commit: [r367]

Discussion

  • Erik Hänel

    Erik Hänel - 2018-07-11
    • status: open --> accepted
     
  • Erik Hänel

    Erik Hänel - 2018-07-25
    • Description has changed:

    Diff:

    --- old
    +++ new
    @@ -1 +1,17 @@
     The handling of the tables for the table viewer and the table editor includes unneccessary copying of memory at a least one place. Therefore transform the logic to pointer handling. This will also include possible checks for open memory blocks in the used queues.
    +
    +###Analysis:
    +(*Describe, what's the issue and which changes have to be made*)
    +
    +###Implementation:
    +* Implementation: (*Describe, what you've changed*)
    +* Implementation test: (*Describe the type of test, which you performed, and if it was succesful*)
    +
    +###Documentation:
    +* ChangesLog: (*Have you updated the changes log?*)
    +* Comments: (*Have you written comments in the code, which describe your change?*)
    +* Documentation articles: (*Have you updated the documentation articles?*)
    +* Language files: (*Have you updated the language files?*)
    +
    +###Tests:
    +(*Describe, which tests you performed and their outcome*)
    
    • status: accepted --> analyzing
     
  • Erik Hänel

    Erik Hänel - 2018-07-28
    • Description has changed:

    Diff:

    --- old
    +++ new
    @@ -1,7 +1,7 @@
     The handling of the tables for the table viewer and the table editor includes unneccessary copying of memory at a least one place. Therefore transform the logic to pointer handling. This will also include possible checks for open memory blocks in the used queues.
    
     ###Analysis:
    -(*Describe, what's the issue and which changes have to be made*)
    +This is a quite large change. The main point is to ensure that the pointers are not freed accidentally. The recommendation is to create a container class, which will ensure that the pointer is unique and only freed, if needed. This can be done by moving the ownership of the pointer and resetting the copied element during each copy construction.
    
     ###Implementation:
    
     * Implementation: (*Describe, what you've changed*)
    
    • status: analyzing --> implementing
     
  • Erik Hänel

    Erik Hänel - 2018-07-28
    • Description has changed:

    Diff:

    --- old
    +++ new
    @@ -4,14 +4,15 @@
     This is a quite large change. The main point is to ensure that the pointers are not freed accidentally. The recommendation is to create a container class, which will ensure that the pointer is unique and only freed, if needed. This can be done by moving the ownership of the pointer and resetting the copied element during each copy construction.
    
     ###Implementation:
    -* Implementation: (*Describe, what you've changed*)
    -* Implementation test: (*Describe the type of test, which you performed, and if it was succesful*)
    +* Implementation: The implementation was done as proposed by the analysis. The container class was declared as a template class to be able to handle different data types
    +* Revision: [r367]
    +* Implementation test: The implementation tests was done by calling `show TABLE()` and `edit TABLE()`. All detected deviations were solved.
    
     ###Documentation:
    -* ChangesLog: (*Have you updated the changes log?*)
    -* Comments: (*Have you written comments in the code, which describe your change?*)
    -* Documentation articles: (*Have you updated the documentation articles?*)
    -* Language files: (*Have you updated the language files?*)
    +* ChangesLog: updated
    +* Comments: The new class is commented sufficiently
    +* Documentation articles: Not needed - internal change
    +* Language files: Not needed - internal change
    
     ###Tests:
     (*Describe, which tests you performed and their outcome*)
    
    • status: implementing --> testing
     
  • Erik Hänel

    Erik Hänel - 2018-07-28
    • Description has changed:

    Diff:

    --- old
    +++ new
    @@ -5,7 +5,7 @@
    
     ###Implementation:
    
     * Implementation: The implementation was done as proposed by the analysis. The container class was declared as a template class to be able to handle different data types
    -* Revision: [r367]
    +* Revision: [r367] 
     * Implementation test: The implementation tests was done by calling `show TABLE()` and `edit TABLE()`. All detected deviations were solved.
    
     ###Documentation:
    
     

    Related

    Commit: [r367]

  • Erik Hänel

    Erik Hänel - 2018-11-10
    • Description has changed:

    Diff:

    --- old
    +++ new
    @@ -15,4 +15,4 @@
    
     * Language files: Not needed - internal change
    
     ###Tests:
    -(*Describe, which tests you performed and their outcome*)
    +This change was tested thoroughly in production tests. All deviations were resolved,
    
    • status: testing --> closed
     

Anonymous
Anonymous

Add attachments
Cancel





MongoDB Logo MongoDB