|View Issue Details [ Jump to Notes ] ||[ Issue History ] [ Print ] |
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0030720||Open CASCADE||[OCCT] OCCT:Coding||public||2019-05-20 12:37||2019-05-21 18:41|
|Assigned To||kgv|| |
|Product Version|| |
|Target Version||[OCCT] 7.4.0*||Fixed in Version|| |
|Summary||0030720: Coding - fix HashCode() function problems that are not resolved with 30550|
|Description||There are some problems that were not resolved with 0030550:|
- undefined behavior caused by left shift operations in TopLoc_Location::HashCode() function is not fixed (look at the places where the local variable depth is used);
- HashCode() functions are not fixed in OCC Products;
- HashCode() function overload for unsigned int behaves differently on 32-bit and 64-bit platforms (on 32-bit platform it is disabled via SFINAE and HashCode() function overload for std::size_t type is used because std::size_t == unsigned int).
To solve the problem with other projects it may be useful to add asserts to methods of map classes that are dealing with hash codes to check their values to be strictly one-based (not zero-based).
|Tags||No tags attached.|
|Test case number|