Parent Directory
|
Revision Log
Sticky Revision: |
Change __url__ to launchpad site
Merging version 2269 to trunk
In preparation for merging to trunk
Executive summary: This commit adds copy on write checks to operations involving shared data. Changes: new #defines: ~~~~~~~~~~~~~ Data.cpp has ASSIGNMENT_MEANS_DEEPCOPY (defaults to undefined). Defining this will put the data = operator back to making deep copies instead of sharing data (now the default.) Data: ~~~~~ . Added exclusiveWrite method to copy the underlying data if it is shared. . Some operators which took python objects now call the c++ versions intead of duplicating code. DataAbstract and offspring: ~~~~~~~~~~~~~~~~~~~~~~~~~~~ . Added method to determine whether the data is currently shared. . Added getVectorRO to children of DataReady. . Added getTagRO. . Operations which modify values in place (or return modifiable pointers) now use a macro to check for sharing. In the case where a modification attempt is detected, it throws an exception. In the future, I will enable this only for debugging. . This shold not really have been required but the compiler was not choosing the use the const version as I would have liked. Besides, this makes things explict. . Moved (and de-inlined) getVector in DataConstant (It was virtual in a parent class). Unit tests: ~~~~~~~~~~~ Added both python and c++ unit tests to check known cases of sharing and "inplace" modification operations. General: ~~~~~~~~ Removed some commented out code.
This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, enter a numeric revision.
ViewVC Help | |
Powered by ViewVC 1.1.26 |