View Issue Details

IDProjectCategoryView StatusLast Update
0023310Open CASCADEOCCT:Foundation Classespublic2013-04-29 15:21
ReporterdbvAssigned Toomy 
PrioritynormalSeverityminor 
Status closedResolutionfixed 
Product Version6.5.3 
Target Version6.6.0Fixed in Version6.6.0 
Summary0023310: No IsEqual function for Handles
DescriptionFor now we don't have IsEqual function for Handles. Thus, some classes use unacceptable workaround (check OpenGl_FontMgr.cxx lines 49-57 and TopTools_MutexForShapeProvider.hxx lines 69-73). However we have HasCode function for Handles.
TagsNo tags attached.
Test case numberNot needed

Activities

omy

2013-01-21 17:32

developer   ~0023046

Last edited: 2013-01-23 10:33

Dear KGV,
I've added IsEqual function for Handles.
Please, review.

kgv

2013-01-23 11:26

developer   ~0023081

Dear omy,

please do not comment dead code in OpenGl_FontMgr.cxx and TopTools_MutexForShapeProvider.hxx but remove it instead.

>+ Handle(Standard_Type) aH1 = first.Access()->DynamicType();
>+ Handle(Standard_Type) aH2 = second.Access()->DynamicType();
>+ return (aH1 == aH2 && first == second);
Since handles compare only pointers (and == is not virtual) for equality this is pointless and overkill to compare dynamic type as well.
And declare IsEqual function as inline since as Handle_Standard_Transient::operator==.

omy

2013-01-23 12:31

developer   ~0023086

Dear KGV,
I've fixed the mistakes you mentioned above.
Please, review.

kgv

2013-01-23 14:09

developer   ~0023089

> I've fixed the mistakes you mentioned above.
No, all remarks were ignored.

omy

2013-01-23 17:00

developer   ~0023095

Dear KGV,
I've fixed the code according to your remarks.
Please, review.

kgv

2013-01-24 10:59

developer   ~0023114

Dear bugmaster, patch is ready for testing in CR23310_1 branch.

Dear omy, your original patch in CR23310 contains changes unrelated to this bug (0023237 mentioned which is already integrated) without any notice in bugtracker.
This allowed only for trivial corrections.
Please register dedicated bug if needed.

Notice, usage of global IsEqual functions defined in global scope could be avoid since #0021212.

mkv

2013-01-25 12:52

tester   ~0023144

Dear BugMaster,
Branch CR23310_1 (and products from GIT master) was compiled on Linux and Windows platforms.
Where are following compilation errors:

http://jenkins-test-01.nnov.opencascade.com/user/mnt/my-views/view/CR23310_1/job/mnt-CR23310_1-master_build_occt_linux/1/parsed_console/?

../../../inc/AIS_NDataMapOfTransientIteratorOfListTransient.hxx:27:
 error: redefinition of 'Standard_Boolean IsEqual(const
Handle_Standard_Transient&, const Handle_Standard_Transient&)'

../../../inc/Handle_Standard_Transient.hxx:243:
 error: 'Standard_Boolean IsEqual(const Handle_Standard_Transient&,
const Handle_Standard_Transient&)' previously defined here

../../../inc/AIS_NDataMapOfTransientIteratorOfListTransient.hxx:27:
 error: redefinition of 'Standard_Boolean IsEqual(const
Handle_Standard_Transient&, const Handle_Standard_Transient&)'

../../../inc/Handle_Standard_Transient.hxx:243:
 error: 'Standard_Boolean IsEqual(const Handle_Standard_Transient&,
const Handle_Standard_Transient&)' previously defined here

../../../inc/AIS_NDataMapOfTransientIteratorOfListTransient.hxx:27:
 error: redefinition of 'Standard_Boolean IsEqual(const
Handle_Standard_Transient&, const Handle_Standard_Transient&)'

../../../inc/Handle_Standard_Transient.hxx:243:
 error: 'Standard_Boolean IsEqual(const Handle_Standard_Transient&,
const Handle_Standard_Transient&)' previously defined here

omy

2013-01-25 16:35

developer   ~0023156

Dear MKV,
I got rid of the compilation errors.
Please, test.

mkv

2013-01-28 12:23

tester   ~0023172

Dear BugMaster,

Branch CR23310_1 (and products from GIT master) was compiled on Linux and Windows platforms and tested.

Number of compiler warnings:

occt component :
Linux: 3 (3 on master)
Windows: 85 (85 on master)

products component :
Linux: 9 (9 on master)
Windows: 54 (54 on master)

Regressions:
No regressions

Improvements:
No improvements

Testing cases:
Not needed


Testing on Linux:
Total MEMORY difference: 223183024 / 223138992
Total CPU difference: 8089.03000000031 / 8335.830000000542

Testing on Windows:
Total MEMORY difference: 298529864 / 298137536
Total CPU difference: 11141.953125 / 11644.109375

There are not serious differences in images found by testdiff.

bugmaster

2013-01-28 18:08

administrator   ~0023182

Please rebase CR23310_1 to master and try to compile

mkv

2013-02-01 11:53

tester   ~0023230

Dear BugMaster,

Branch CR223310_1 was rebased on the current master.

Branch CR23310_1 (and products from GIT master) was compiled on Linux
and Windows platforms and tested.

Number of compiler warnings:

occt component :
Linux: 3 (3 on master)
Windows: 57 (57 on master)

products component :
Linux: 9 (9 on master)
Windows: 50 (50 on master)

Regressions:
No regressions

Improvements:
No improvements

Testing cases:
Not needed

Related Changesets

occt: master 024855ee

2013-02-01 12:47:50

omy

Details Diff
0023310: No IsEqual function for Handles

IsEqual function for Handle(Standard_Transient) was added to global scope.
Getting rid of compilation errors (removed additional IsEqual functions)
Affected Issues
0023310
mod - src/AIS/AIS_NDataMapOfTransientIteratorOfListTransient.hxx Diff File
mod - src/OpenGl/OpenGl_FontMgr.cxx Diff File
mod - src/Standard/Handle_Standard_Transient.hxx Diff File
mod - src/TObj/TObj_Common.hxx Diff File
mod - src/TopTools/TopTools_MutexForShapeProvider.hxx Diff File

Issue History

Date Modified Username Field Change
2012-07-17 18:30 dbv New Issue
2012-07-17 18:30 dbv Assigned To => abv
2012-10-26 17:59 abv Assigned To abv => omy
2012-10-26 17:59 abv Status new => assigned
2012-10-26 17:59 abv Target Version => 6.6.0
2013-01-21 17:32 omy Note Added: 0023046
2013-01-21 17:32 omy Assigned To omy => inv
2013-01-21 17:32 omy Status assigned => resolved
2013-01-23 10:33 omy Note Edited: 0023046
2013-01-23 10:33 omy Assigned To inv => kgv
2013-01-23 11:26 kgv Note Added: 0023081
2013-01-23 11:26 kgv Assigned To kgv => omy
2013-01-23 11:26 kgv Status resolved => assigned
2013-01-23 12:31 omy Note Added: 0023086
2013-01-23 12:31 omy Assigned To omy => kgv
2013-01-23 12:31 omy Status assigned => resolved
2013-01-23 14:09 kgv Note Added: 0023089
2013-01-23 14:09 kgv Assigned To kgv => omy
2013-01-23 14:09 kgv Status resolved => assigned
2013-01-23 17:00 omy Note Added: 0023095
2013-01-23 17:00 omy Assigned To omy => kgv
2013-01-23 17:00 omy Status assigned => resolved
2013-01-24 10:59 kgv Note Added: 0023114
2013-01-24 10:59 kgv Assigned To kgv => bugmaster
2013-01-24 10:59 kgv Status resolved => reviewed
2013-01-24 16:31 mkv Assigned To bugmaster => mkv
2013-01-25 12:52 mkv Note Added: 0023144
2013-01-25 12:53 mkv Test case number => Not needed
2013-01-25 12:53 mkv Assigned To mkv => omy
2013-01-25 12:53 mkv Status reviewed => assigned
2013-01-25 16:35 omy Note Added: 0023156
2013-01-25 16:35 omy Assigned To omy => mkv
2013-01-25 16:35 omy Status assigned => resolved
2013-01-25 16:44 kgv Status resolved => reviewed
2013-01-28 12:23 mkv Note Added: 0023172
2013-01-28 12:23 mkv Assigned To mkv => bugmaster
2013-01-28 12:23 mkv Status reviewed => tested
2013-01-28 18:08 bugmaster Note Added: 0023182
2013-01-28 18:08 bugmaster Assigned To bugmaster => mkv
2013-01-28 18:08 bugmaster Status tested => assigned
2013-02-01 11:53 mkv Note Added: 0023230
2013-02-01 11:53 mkv Assigned To mkv => bugmaster
2013-02-01 11:53 mkv Status assigned => resolved
2013-02-01 11:54 mkv Status resolved => reviewed
2013-02-01 11:54 mkv Status reviewed => tested
2013-02-04 14:47 omy Changeset attached => occt master 024855ee
2013-02-04 14:47 omy Assigned To bugmaster => omy
2013-02-04 14:47 omy Status tested => verified
2013-02-04 14:47 omy Resolution open => fixed
2013-04-23 13:36 aiv Status verified => closed
2013-04-29 15:21 aiv Fixed in Version => 6.6.0