View Issue Details

IDProjectCategoryView StatusLast Update
0008503Open CASCADEOCCT:Foundation Classespublic2020-10-13 07:37
ReporterpkvAssigned Toskl 
PrioritynormalSeverityfeature 
Status closedResolutionfixed 
OSAll 
Summary0008503: FIP 8.17 : Hide the objects to deny unauthorized operations with memory manager
DescriptionThe current Open CASCADE memory manager contains static functions and global
variables that are just for internal usage by memory manager itself. These
objects are accessible for the end user, provoking to use them. The aim of this
work is to provide object-oriented software architecture that will be able to
deny unauthorized operations with the memory manager.
Additional information
and documentation updates
Documentation remark, added by PKV 2005-03-29 09:48:51:

New features:
1.The following set of static functions is considered as general interface
between the user and the memory manager [1]:

* Standard_Address Standard::Allocate (const Standard_Integer aSize);
* Standard_Address Standard::Reallocate (Standard_Address& anAddr, const
Standard_Integer aNewSize);
* void Standard::Free (Standard_Address& anAddr);
* void Standard::Purge ( );
2.The abstract class Standard_MMgrRoot contains the following interface of the
memory manager object:
public:
 Standard_Address Allocate (const Standard_Integer aSize) =0;
 Standard_Address Reallocate (Standard_Address& anAddr, const Standard_Integer
aNewSize) =0;
 void Free (Standard_Address& anAddr) =0;
 void Purge ( )=0;
 ~ Standard_MMgrRoot ( )=0; // destructor
protected:
 void Initialize ( ) =0; // initializes the fields of the object

These methods are pure virtual functions of the abstract class
Standard_MMgrRoot. The classes that inherit from Standard_MMgrRoot contain the
concrete implementation of the methods above.
3.Implementation:
3.1 Standard_MMgrOpt – the class containing implementation of the current memory
manager for the operating parameter MMGT_OPT=1 [1] (so called optimal memory
manager);
3.2 Standard_MMgrRaw - the class containing implementation of the current memory
manager for the operating parameter MMGT_OPT=0 [1] (so called non-optimal memory
manager);
Modified entities:
The following modifications of the sources of the Open CASCADE have been done:
* Methods removed from the class Standard:
- void Standard::StorageManagerInit ( )
- Standard_Address Standard::MAllocate (const Standard_Integer )
- void Standard::MFree (Standard_Address& )
- void Standard::Free (Standard_Address& , const Standard_Integer )
- Standard_Address Standard::Reallocate (Standard_Address& ,
const Standard_Integer ,
const Standard_Integer )
- Standard_Address Standard::MReallocate (Standard_Address& ,
const Standard_Integer )
- Standard_Address Standard::RReallocate (Standard_Address& ,
const Standard_Integer ,
const Standard_Integer )
- Standard_Integer Standard::AllocatedLength (const Standard_Address )
- Standard_Boolean Standard::ReAllocatedLength (const Standard_Address ,
const Standard_Integer )
- void Standard::StorageManagerDump (Standard_OStream& )
- Standard_Boolean Standard::Display (Standard_Ostream& ,
const Standard_CString )
- Standard_Boolean Standard::Display (const Standard_CString )


* Removed classes: StandardCSFDB, Mgt_StorageManager
* Removed files: Standard_Allocate.lxx , StandardCSFDB.cxx
Mgt_StorageManager.cdl/cxx/lxx
* Files modified due to disappearance the methods of the class Standard.
CPPExt_TemplateCSFDB.edl

AlienImage.cxx
AlienImage_BMPAlienData.cxx
AlienImage_EuclidAlienData.cxx
AlienImage_GIFAlienData.cxx
AlienImage_MemoryOperations.cdl
AlienImage_MemoryOperations.cxx
AlienImage_SGIRGBAlienData.cxx
AlienImage_SunRFAlienData.cxx
AlienImage_X11XWDAlienData.cxx
BooleanOperations_AncestorsAndSuccessors.cxx
BooleanOperations_Explorer.cxx
BooleanOperations_InterferencesList.cxx
BooleanOperations_OnceExplorer.cxx
BooleanOperations_ShapesDataStructure.cxx
DBC_VArray.gxx
DBRep.cxx
EDL_Interpretor.cxx
FSD_BinaryFile.cxx
Graphic3d_Strips.cxx
ImageUtility_X11Dump.cxx
MMgt.cdl
MMgt_TShared.cxx
MSAPI MSAPI_MetaSchema.cxx
Handle_Standard_Persistent.hxx
Handle_Standard_Transient.hxx
PMMgt_PManaged.cxx
Poly_Connect.cxx
Standard_DefineHandle.hxx
Standard_Persistent_proto.hxx
Storage_BucketOfPersistent.hxx
Storage_Schema.cxx
TCollection_AVLIterator.gxx
TCollection_AVLSearchTree.gxx
TCollection_Array1.gxx
TCollection_Array2.gxx
TCollection_AsciiString.cxx
TCollection_BaseSequence.lxx
TCollection_BasicMap.cxx
TCollection_BasicMap.lxx
TCollection_ExtendedString.cxx
TCollection_List.gxx
TCollection_Queue.gxx
TCollection_SList.gxx
TCollection_Stack.gxx
TNaming_NamedShape.cxx
TopExp_Explorer.cxx
WOKStep_WNTLink.cxx
WOKTools_BasicMap.cxx
WOKTools_BasicMap.lxx
WOKMake_BuildProcessIterator.cxx
math_DoubleTab.gxx
math_SingleTab.gxx


* Files modified due to OC internal bugs (OCC 8500)
OSD_Chronometer.cxx
TagsNo tags attached.
Test case number

Attached Files

  • pkv-mmgr.rar (142,730 bytes)
  • MMgr-FIP-2.doc (373,248 bytes)
  • OCC8503.tar.gz (211,659 bytes)
  • Standard_MMgrOpt.cxx (0 bytes)
  • pdn-occ8503-050907.zip (13,774 bytes)

Relationships

parent of 0031844 newabv Community Coding - memory leak in Standard_MMgrFactory 
related to 0008500 closedabv Open CASCADE The spent time recieved from OSD_Chronometer has wrong value for OS LINUX 
Not all the children of this issue are yet resolved or closed.

Activities

2005-03-29 09:41

 

pkv-mmgr.rar (142,730 bytes)

2005-03-29 09:43

 

MMgr-FIP-2.doc (373,248 bytes)

bugmaster

2005-07-13 16:10

administrator   ~0009983

*** Bug 8500 has been marked as a duplicate of this bug. ***

2005-08-08 09:33

 

OCC8503.tar.gz (211,659 bytes)

2005-09-06 07:09

 

Standard_MMgrOpt.cxx (0 bytes)

2005-09-07 12:54

 

pdn-occ8503-050907.zip (13,774 bytes)

Issue History

Date Modified Username Field Change
2005-03-29 11:42 bugmaster Assigned To bugmaster => pkv
2005-03-29 11:42 bugmaster Status new => assigned
2005-03-29 13:09 bugmaster Status assigned => resolved
2005-03-30 08:30 bugmaster BugsThisDependsOn => 8500
2005-04-18 10:25 apv CC => apv, aki
2005-04-18 15:56 abv CC => abv
2005-07-08 16:00 bugmaster Assigned To pkv => skl
2005-07-08 16:00 bugmaster Status resolved => assigned
2005-07-08 16:00 bugmaster Type => FIP
2005-08-08 11:24 abv Assigned To skl => pdn
2005-08-08 11:27 abv BugsThisDependsOn => 2937
2005-08-08 11:35 pdn Status assigned => resolved
2005-08-31 16:49 abv CC => skl
2005-08-31 17:18 bugmaster Assigned To pdn => skl
2005-08-31 17:18 bugmaster Status resolved => assigned
2005-09-20 12:33 bugmaster Status assigned => verified
2005-10-31 17:46 bugmaster Status verified => closed
2005-10-31 17:46 bugmaster Resolution @0@ => fixed
2011-08-02 11:23 bugmaster Category OCCT:FDC => OCCT:Foundation Classes
2012-01-16 13:44 atp Fixed in Version EMPTY =>
2012-01-16 13:44 atp Description Updated
2012-01-16 13:44 atp Additional Information Updated
2020-10-13 07:37 kgv Relationship added parent of 0031844