View Issue Details

IDProjectCategoryView StatusLast Update
0009562Open CASCADEOCCT:Foundation Classespublic2012-01-16 11:55
ReporteragvAssigned Toagv 
PrioritynormalSeverityfeature 
Status closedResolutionfixed 
OSAll 
Summary0009562: Class UBTree in NCollection should use BaseAllocator API for memory management
DescriptionIt is proposed to modify NCollection_UBTree and NCollection_EBTree classes so
that they would be initialized by arbitrary memory allocator. This allocator
would be used to store all tree nodes and leaves. The goals of this improvement:

 - Enable better performance with the use of NCollection_IncAllocator;
 - Allow to choose the memory management strategy, according to the needs of the
application.

The default implementation would use OCC memory management (Standard::Allocate)
as defined by NCollection_BaseAllocator class.
Additional information
and documentation updates
Documentation remark, added by AGV 2005-07-25 09:26:35:

Improvements:
1. NCollection_UBTree: in constructor the optional parameter "theAllocator" is
supplied (defaults to NCollection_BaseAllocator::CommonBaseAllocator()). This
Allocator is stored as member of UBTree class and can be queried by method
Allocator().

2. Similarly, method Clear takes one optional parameter "aNewAlloc". This is the
new allocator instance that would be used from the moment of destroyning the
previous data allocated on the previous allocator. This feature is useful if
IncAllocator employed.

3. NCollection_UBTreeFiller allocates its internal Sequence (mySeq) using
NCollection_IncAllocator, this also improves the performance.

4. In all three header files the comments are reformatted to Javadoc standard
(to be usable by Doxygen).
Changes:
In both modified tree classes, all methods dealing with memory are called as the
methods Allocate and Free of the given Allocator object.

The modifications do not require any change of existing calling code, the
backward compatibility is maintained.

Modified entities:
In unit NCollection, classes
  - UBTree (NCollection_UBTree.hxx)
  - UBTreeFiller (NCollection_UBTreeFiller.hxx>
  - EBTree (NCollection_EBTree.hxx)

The code was successfully compiled on SUN and VC++ 7.1. The modifications in
UBTree and UBTreeFiller were tested on these platforms.
TagsNo tags attached.
Test case number

Attached Files

Activities

2005-07-25 09:08

 

OCC9562.tar.gz (7,043 bytes)

Issue History

Date Modified Username Field Change
2005-07-25 11:09 bugmaster Assigned To bugmaster => agv
2005-07-25 11:09 bugmaster Status new => assigned
2005-07-25 11:57 bugmaster Status assigned => resolved
2005-07-25 11:57 bugmaster Status resolved => tested
2005-08-03 16:52 bugmaster Status tested => closed
2005-08-03 16:52 bugmaster Resolution @0@ => fixed
2011-08-02 11:23 bugmaster Category OCCT:FDC => OCCT:Foundation Classes
2012-01-16 11:55 atp Fixed in Version EMPTY =>
2012-01-16 11:55 atp Description Updated
2012-01-16 11:55 atp Additional Information Updated