View Issue Details

IDProjectCategoryView StatusLast Update
0013131Open CASCADEOCCT:Foundation Classespublic2012-01-13 17:05
ReporterabvAssigned Toabv 
PrioritynormalSeverityfeature 
Status closedResolutionfixed 
OSAll 
Fixed in Version6.1.1 
Summary0013131: Optimize code of OCC classes generated by WOK
DescriptionSome very basic OCC classes, first of all, the ones generated automatically by
WOK, such as Handles, are implemented in not optimal way.

For instance, for each Handle() class empty constructor is implemented
explicitly in CXX file. This makes destruction of Handle a call to several
functions (one per level of inheritance). This is not needed actually, since
Handle classes (besides the basis one, Handle(Standard_Transient)) do not
provide any fields or other data that would require destruction. It is safe to
trust generation of default destructor to compiler -- this will be faster and
lead to less binary code.

Another example: for each class OCC redefines new() and delete() operators so
as to call OCC memory manager. This is not needed for classes inheriting some
other class (e.g. Standard_Transient) since these operators are inherited.
Additional information
and documentation updates
Documentation remark, added by ABV 2006-08-10 09:55:34:

New features:


Improvements:
Declaration of basic OCCT classes such as Standard_Transient and templates for
generation of Handle classes have been improved to optimize typical low-level
operations with classes manipulated by Handle such as IsKind(), DownCast(), and
creation/destruction of Handle objects.

Note that method Standard_Transient::IsKind() is not virtual anymore, and it is
not redefined by every descendant class.

Changes:


Modified entities:

TagsNo tags attached.
Test case number

Attached Files

  • occ13131-abv-test.tar.gz (1,100 bytes)
  • occ13051perf.xls (19,456 bytes)

Relationships

related to 0013051 closedpdn Using nonexistent objects in Standard_ForMapOfTypes class 

Activities

2006-08-08 16:31

 

occ13131-abv-test.tar.gz (1,100 bytes)

2006-08-08 16:33

 

occ13051perf.xls (19,456 bytes)

Issue History

Date Modified Username Field Change
2006-08-08 18:13 bugmaster Assigned To bugmaster => abv
2006-08-08 18:13 bugmaster Status new => assigned
2006-08-08 18:28 abv OtherBugsDependingOnThis => 13051
2006-08-08 18:37 abv Status assigned => resolved
2006-09-06 09:42 bugmaster Status resolved => verified
2006-11-01 18:55 bugmaster Status verified => closed
2006-11-01 18:55 bugmaster Resolution @0@ => fixed
2011-08-02 11:23 bugmaster Category OCCT:FDC => OCCT:Foundation Classes
2012-01-13 17:05 atp Description Updated
2012-01-13 17:05 atp Additional Information Updated