MantisBT - Community
View Issue Details
0026937Community[OCCT] OCCT:Foundation Classespublic2015-11-30 12:002017-09-29 16:24
Roman Lygin 
apn 
normalminor 
closedfixed 
[OCCT] 7.0.0 
[OCCT] 7.2.0[OCCT] 7.2.0 
Not needed
0026937: Eliminate NO_CXX_EXCEPTION macro support
The macro is obsolete (as confirmed in 0026924) and is worth explicit removing to avoid confusion.
N/A
Foundation Classes User's Guide requires update of the exception handling section
No tags attached.
related to 0028217closed apn Community Error handling is not thread safe and causing memory corruption and sporadic crashes 
related to 0028431closed apn Open CASCADE Coding, Graphic3d - Eliminate GCC warning -Wstrict-overflow 
child of 0026924closed bugmaster Community Use of exit() in a shared library 
Issue History
2015-11-30 12:00Roman LyginNew Issue
2015-11-30 12:00Roman LyginAssigned To => abv
2015-11-30 12:00Roman LyginRelationship addedchild of 0026924
2015-12-14 22:39abvTarget Version7.0.0 => 7.1.0
2016-01-06 16:34abvNote Added: 0049702
2016-01-21 12:26TimoNote Added: 0050010
2016-01-21 12:45abvNote Added: 0050011
2016-11-02 18:15jensgwNote Added: 0059810
2016-11-05 21:06abvTarget Version7.1.0 => 7.2.0
2016-12-25 01:31abvRelationship addedrelated to 0028217
2017-01-12 08:27abvAssigned Toabv => ski
2017-01-12 08:27abvStatusnew => assigned
2017-01-20 17:02gitNote Added: 0062852
2017-01-20 18:00gitNote Added: 0062858
2017-01-23 15:10gitNote Added: 0062902
2017-01-23 16:22gitNote Added: 0062914
2017-01-23 18:01gitNote Added: 0062918
2017-01-23 18:54skiNote Added: 0062922
2017-01-23 18:54skiAssigned Toski => abv
2017-01-23 18:54skiStatusassigned => resolved
2017-01-23 18:54skiSteps to Reproduce Updatedbug_revision_view_page.php?rev_id=15902#r15902
2017-01-23 19:30abvNote Added: 0062923
2017-01-23 19:30abvAssigned Toabv => ski
2017-01-23 19:30abvStatusresolved => assigned
2017-01-24 11:26gitNote Added: 0062929
2017-01-24 13:49gitNote Added: 0062940
2017-01-25 14:26skiNote Added: 0063007
2017-01-25 14:26skiAssigned Toski => abv
2017-01-25 14:26skiStatusassigned => resolved
2017-01-25 15:00gitNote Added: 0063013
2017-01-26 13:13abvNote Added: 0063086
2017-01-26 13:13abvAssigned Toabv => bugmaster
2017-01-26 13:13abvStatusresolved => reviewed
2017-01-26 17:24apvAssigned Tobugmaster => apv
2017-01-27 16:50apvAssigned Toapv => ski
2017-01-27 16:50apvStatusreviewed => assigned
2017-01-30 16:34gitNote Added: 0063202
2017-01-30 17:01skiNote Added: 0063210
2017-01-30 17:01skiAssigned Toski => abv
2017-01-30 17:01skiStatusassigned => resolved
2017-01-30 19:36abvNote Added: 0063220
2017-01-30 19:36abvAssigned Toabv => ski
2017-01-30 19:36abvStatusresolved => feedback
2017-01-30 20:50gitNote Added: 0063230
2017-01-30 21:56abvNote Added: 0063231
2017-01-30 21:56abvAssigned Toski => bugmaster
2017-01-30 21:56abvStatusfeedback => reviewed
2017-01-31 09:52gitNote Added: 0063236
2017-01-31 11:44mkvAssigned Tobugmaster => mkv
2017-02-01 12:43mkvNote Added: 0063283
2017-02-01 12:44mkvNote Added: 0063284
2017-02-01 12:44mkvAssigned Tomkv => ski
2017-02-01 12:44mkvStatusreviewed => assigned
2017-02-01 19:02skiNote Added: 0063324
2017-02-01 19:02skiAssigned Toski => abv
2017-02-01 19:02skiStatusassigned => resolved
2017-02-01 19:37abvNote Added: 0063325
2017-02-01 19:37abvAssigned Toabv => ski
2017-02-01 19:37abvStatusresolved => assigned
2017-02-01 20:24gitNote Added: 0063330
2017-02-01 20:44skiNote Added: 0063331
2017-02-01 20:44skiAssigned Toski => abv
2017-02-01 20:44skiStatusassigned => resolved
2017-02-02 10:52abvNote Added: 0063339
2017-02-02 10:52abvAssigned Toabv => bugmaster
2017-02-02 10:52abvStatusresolved => reviewed
2017-02-02 11:01mkvAssigned Tobugmaster => mkv
2017-02-02 12:38mkvNote Added: 0063349
2017-02-02 12:39mkvNote Added: 0063350
2017-02-02 12:39mkvAssigned Tomkv => bugmaster
2017-02-02 12:39mkvStatusreviewed => tested
2017-02-02 12:39mkvTest case number => Not needed
2017-02-03 13:18skiRelationship addedrelated to 0028431
2017-02-03 16:52apnChangeset attached => occt master 9775fa61
2017-02-03 16:52apnAssigned Tobugmaster => apn
2017-02-03 16:52apnStatustested => verified
2017-02-03 16:52apnResolutionopen => fixed
2017-02-08 11:35gitNote Added: 0063583
2017-02-08 11:35gitNote Added: 0063584
2017-09-29 16:21aivFixed in Version => 7.2.0
2017-09-29 16:24aivStatusverified => closed

Notes
(0049702)
abv   
2016-01-06 16:34   
Along with removal of NO_CXX_EXCEPTION macro, we shall also revise the way how exceptions are caught: instead of storing last thrown exception in global variable accessed by method Standard_Failure::Caught(), normal C++ mechanism of exception transfer should be used. Also throwing exceptions by explicit throw statement instead of method Raise() would be more correct; it will allow compiler to recognize that further code is unreachable.
(0050010)
Timo   
2016-01-21 12:26   
Just wanted to ask for also considering what might be good to improve exception forwarding to the C# wrapper. I don't have specific ideas or knowledge about it but currently there are usually no sensible exception messages and if the exception mechanism is revised it might be good to keep the wrappers in mind.
(0050011)
abv   
2016-01-21 12:45   
I agree, but this is quite different topic. I have registered separate issue for that, #27102.
(0059810)
jensgw   
2016-11-02 18:15   
Also exception forwarding to the java wrapper would be awesome ...
(0062852)
git   
2017-01-20 17:02   
Branch CR26937 has been created by ski.

SHA-1: caada2e67e47ddcfcd3bba690c4c1f44ee720917


Detailed log of new commits:

Author: ski
Date: Mon Jan 16 12:18:05 2017 +0300

    Storing last thrown exception in global variable accessed by method Standard_Failure::Caught() was eliminated.

Author: ski
Date: Wed Jan 18 12:40:08 2017 +0300

    Method Standard_Failure::Caught() was replaced by normal C++mechanism of exception transfer.

Author: ski
Date: Mon Jan 16 12:18:05 2017 +0300

    Method Raise() was replaced by explicit throw statement.

Author: ski
Date: Fri Jan 13 16:21:48 2017 +0300

    0026937: Eliminate NO_CXX_EXCEPTION macro support
    
    Macro NO_CXX_EXCEPTION was removed from code.
(0062858)
git   
2017-01-20 18:00   
Branch CR26937 has been updated forcibly by ski.

SHA-1: 0e291f740bce4bc3bd90b198b4d6c2d469f40d16
(0062902)
git   
2017-01-23 15:10   
Branch CR26937 has been updated forcibly by ski.

SHA-1: d17ea0cc3ec88e1c991dd52815ad55817c417863
(0062914)
git   
2017-01-23 16:22   
Branch CR26937 has been updated by ski.

SHA-1: 876a1ba2ce614f4c4bb0324ad0cb7ddcc1192f27


Detailed log of new commits:

Author: ski
Date: Mon Jan 23 16:22:46 2017 +0300

    Eliminate empty method ChangeValue from NCollection_Map class.

(0062918)
git   
2017-01-23 18:01   
Branch CR26937 has been updated forcibly by ski.

SHA-1: 0a029f30424d7949e44b4ad510dae452219fd296
(0062922)
ski   
2017-01-23 18:54   
Dear abv,

please review occt branch CR26937 and products branch CR26937
(0062923)
abv   
2017-01-23 19:30   
Some minor remarks:

- In Standard_ErrorHandler.hxx, line 197: please correct comment "If neither OCC_CONVERT_SIGNALS is defined," -> "If OCC_CONVERT_SIGNALS is not defined,"

- In Standard_Failure.hxx: please extend message "This method is deprecated" to "This method is deprecated (not thread-safe), use standard C++ mechanism instead"

- In BRepClass3d_SolidExplorer, it is better to keep declaration of copy constructor, without implementation and as private -- this will prevent compiler from attempt to generate default copy constructor

- In TDF_Delta.cxx, why you replaced throw by cout?
(0062929)
git   
2017-01-24 11:26   
Branch CR26937 has been updated by ski.

SHA-1: a640b48ae375f3f051ca7a0f0b61ce6f9863285d


Detailed log of new commits:

Author: ski
Date: Mon Jan 23 16:22:46 2017 +0300

    Remarks were applied.

(0062940)
git   
2017-01-24 13:49   
Branch CR26937 has been updated by ski.

SHA-1: 217c758a7d29faa3562d5f5be0ea430524c607f5


Detailed log of new commits:

Author: ski
Date: Mon Jan 23 16:22:46 2017 +0300

    Adjusting test case according to improvements in new behaviour.

(0063007)
ski   
2017-01-25 14:26   
Dear abv,

all remarks were applied.

please review.
(0063013)
git   
2017-01-25 15:00   
Branch CR26937 has been updated forcibly by ski.

SHA-1: 35878ceb1eacff3490d5c27fbfc35ab8f39ac1ea
(0063086)
abv   
2017-01-26 13:13   
No remarks, please test
(0063202)
git   
2017-01-30 16:34   
Branch CR26937 has been updated forcibly by ski.

SHA-1: 9dd5e914dbc379c42451959747023e358f35b875
(0063210)
ski   
2017-01-30 17:01   
OCCT branch CR26937 and products CR26937 were rebased on current state of master.
(0063220)
abv   
2017-01-30 19:36   
Please explain what happened since previous state of the branch has been reviewed
(0063230)
git   
2017-01-30 20:50   
Branch CR26937_1 has been created by ski.

SHA-1: 1b946a8c78a910b1ba6771fb1969f9145972aa46


Detailed log of new commits:

Author: ski
Date: Fri Jan 13 16:21:48 2017 +0300

    0026937: Eliminate NO_CXX_EXCEPTION macro support
    
    Macro NO_CXX_EXCEPTION was removed from code.
    Method Raise() was replaced by explicit throw statement.
    Method Standard_Failure::Caught() was replaced by normal C++mechanism of exception transfer.
    Method Standard_Failure::Caught() is deprecated now.
    Eliminated empty constructors.
    Updated samples.
    Eliminate empty method ChangeValue from NCollection_Map class.
(0063231)
abv   
2017-01-30 21:56   
Reviewed, please test
(0063236)
git   
2017-01-31 09:52   
Branch CR26937_1 has been updated by ski.

SHA-1: dc5994fa4406af23327b8d18db2e5079d1881b4e


Detailed log of new commits:

Author: ski
Date: Fri Jan 13 16:21:48 2017 +0300

    Fixed compile errors.

(0063283)
mkv   
2017-02-01 12:43   
Dear BugMaster,
Branch CR26937_1 from occt git-repository (and CR26937 from products git-repository) was compiled on Linux, MacOS and Windows platforms and tested on Release mode.
SHA-1: dc5994fa4406af23327b8d18db2e5079d1881b4e
SHA-1: 66a48169172db3a4701459a9f8d707a1e1f9a1b8
 There are following compilation errors:
Windows:
http://jenkins-test-07.nnov.opencascade.com:8080/view/CR26937_1-CR26937/job/CR26937_1-CR26937-Products-Windows-64-VC10-csharp-samples/1/parsed_console/ [^]
1>occcsharp_wrap.cxx(16723): error C2039: 'ChangeValue' : is not a member of 'NCollection_Map<TheKeyType,Hasher>::Iterator'
...
http://jenkins-test-07.nnov.opencascade.com:8080/view/CR26937_1-CR26937/job/CR26937_1-CR26937-Products-Windows-64-VC10-java-samples/1/parsed_console/ [^]
..\..\..\OCCwrapJava\occjava_wrap.cxx(15683): error C2039: 'ChangeValue' : is not a member of 'NCollection_Map<TheKeyType,Hasher>::Iterator' [D:\install\CR26937_1-CR26937\Windows-64-VC10-opt\Products\samples\java\win64\VC10\cmake\OCCwrapJava.vcxproj]
...

Number of compiler warnings:

occt component :
Linux: 0 (0 on master)
Windows: 0 (0 on master)
MacOS : 0 (0 on master)

products component :
Linux: 63 (63 on master)
Windows: 0 (0 on master)
MacOS : 1149

Regressions/Differences/Improvements:
No regressions/differences

Testing cases:
Not needed

Testing on Linux:
occt component :
Total MEMORY difference: 91875215 / 92316429 [-0.48%]
Total CPU difference: 19988.740000000147 / 19914.260000000217 [+0.37%]
products component :
Total MEMORY difference: 31431336 / 31477908 [-0.15%]
Total CPU difference: 5603.66999999998 / 5544.959999999981 [+1.06%]

Testing on Windows:
occt component :
Total MEMORY difference: 57621064 / 57618048 [+0.01%]
Total CPU difference: 18773.987145298546 / 18683.178963198647 [+0.49%]
products component :
Total MEMORY difference: 22659000 / 22621210 [+0.17%]
Total CPU difference: 5648.468607899988 / 5570.546108399986 [+1.40%]

There are no differences in images found by testdiff.
(0063284)
mkv   
2017-02-01 12:44   
Dear ski,
Branch CR26937_1 has been rejected due to:
- compilation errors
(0063324)
ski   
2017-02-01 19:02   
Dear abv,

please review.
(0063325)
abv   
2017-02-01 19:37   
Please remove also method NCollection_IndexedMap::Iterator::ChangeValue() as it is not operable, like in Map
(0063330)
git   
2017-02-01 20:24   
Branch CR26937_1 has been updated by ski.

SHA-1: 1ead8bd550e3ef922ce0b8cdccab01e0c3aabda1


Detailed log of new commits:

Author: ski
Date: Wed Feb 1 20:13:34 2017 +0300

    Removed not operable methods from NCollection classes.

(0063331)
ski   
2017-02-01 20:44   
Done.
(0063339)
abv   
2017-02-02 10:52   
No remarks, please test
(0063349)
mkv   
2017-02-02 12:38   
Dear BugMaster,
Branch CR26937_1 from occt git-repository (and CR26937 from products git-repository) was compiled on Linux, MacOS and Windows platforms and tested on Release mode.
SHA-1: 1ead8bd550e3ef922ce0b8cdccab01e0c3aabda1
SHA-1: c9079ea954135540e1de3d43020c40ef8389da56

Number of compiler warnings:

occt component :
Linux: 0 (0 on master)
Windows: 0 (0 on master)
MacOS : 0 (0 on master)

products component :
Linux: 63 (63 on master)
Windows: 0 (0 on master)
MacOS : 1131

Regressions/Differences/Improvements:
No regressions/differences

Testing cases:
Not needed

Testing on Linux:
occt component :
Total MEMORY difference: 91697733 / 92232115 [-0.58%]
Total CPU difference: 20047.300000000203 / 19914.170000000217 [+0.67%]
products component :
Total MEMORY difference: 31410012 / 31477908 [-0.22%]
Total CPU difference: 5634.189999999976 / 5544.959999999981 [+1.61%]

Testing on Windows:
occt component :
Total MEMORY difference: 57529923 / 57618048 [-0.15%]
Total CPU difference: 18622.354173298565 / 18683.178963198647 [-0.33%]
products component :
Total MEMORY difference: 22632707 / 22621210 [+0.05%]
Total CPU difference: 5575.179338099982 / 5570.546108399986 [+0.08%]

There are no differences in images found by testdiff.
(0063350)
mkv   
2017-02-02 12:39   
Dear BugMaster,
Branch CR26937_1 from occt git-repository and CR26937 from products git-repository are TESTED.
(0063583)
git   
2017-02-08 11:35   
Branch CR26937 has been deleted by kgv.

SHA-1: 9dd5e914dbc379c42451959747023e358f35b875
(0063584)
git   
2017-02-08 11:35   
Branch CR26937_1 has been deleted by kgv.

SHA-1: 1ead8bd550e3ef922ce0b8cdccab01e0c3aabda1