Archived issue #0025246

Make methods Intervals and NbIntervals const in Adaptor3d_Curve and it descendants

Open CASCADEOCCT:Codingclosed10 public notes

Search issues

Description

The rationale is that logically these methods should have been const, as the fields that they change (when they do) are just a cache and do not change logical state of the object.

Steps to reproduce

- Generate Visual Studio projects (VS2012 or later) with patched WOK
- Build OCCT

Additional information

In Release Notes this change must be highlighted in Porting section: all classes inheriting Adaptor3d_Curve (directly or indirectly) in application code must be updated to use new signature of methods Intervals() and NbIntervals(). Note that no compiler warning will be generated if this is not done!

Public activity

10 archived notes

Participants are labeled by their role within this record.

01Commenter 2
Branch [archived branch] has been created by Author.

[revision removed]


Detailed log of new commits:

Author: Author
Date: Tue Oct 28 09:15:21 2014 +0300

    0025246: Make methods Intervals and NbIntervals const in Adaptor3d_Curve and it descendants
    
    Qualifier "const" added to NbIntervals and Intervals functions.

02Commenter 2
Dear abv,

Please check current state of branches CR25246 in occt and products repositories.
03Commenter 3
Dear Dmitry,

from branch CR25183 for #0025183:
-    NbIntervals(me; S : Shape from GeomAbs) returns Integer
+    NbIntervals(me: in out; S : Shape from GeomAbs) returns Integer
...
-    Intervals(me; T : in out Array1OfReal from TColStd; 
+    Intervals(me: in out; T : in out Array1OfReal from TColStd;


please check/update patch for #0025246 with introduced override in WOK to ensure that all inheritors have been updated (including products branch - it would be good to add Standard_OVERRIDE to these methods in headers, not exported from .cdl).
04Commenter 4
occt-products Branch [archived branch] has been updated
occt Branch [archived branch] has been updated according to changes in this patch

Dear Kirill, please review.
05Commenter 3
Dear Dmitry,

please re-base branches CR25246 for occt and products to current master and cherry-pick patch from CR25183 into CR25246 for occt.
06Commenter 2
Branch [archived branch] has been updated forcibly by Participant.

[revision removed]
07Commenter 7
Dear Kirill,

occt and occt-products branches CR25246 has been re-based and ready to be reviewed.
08Commenter 3
Please test the patch.

Notice that steps to reproduce suppose using patched WOK - this can be skipped for now, just test on current WOK.
09Commenter 9
Dear Commenter 1,
Branch CR25246 from occt git-repository and
branch CR25246 from products git-repository
was compiled on Linux, MacOS and Windows platforms and tested on Release mode.
[revision removed]
[revision removed]

Number of compiler warnings:

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

products component :
Linux: 11 (11 on master)
Windows: 1 (1 on master)

Regressions/Differences:
No regressions/differences

Testing cases:
Not needed

Testing on Linux:
occt component :
Total MEMORY difference: 84862335 / 86193283
Total CPU difference: 50513.44000000016 / 48446.16999999995
products component :
Total MEMORY difference: 23436364 / 23470864
Total CPU difference: 16128.989999999974 / 15857.75999999999

Testing on Windows:
occt component :
Total MEMORY difference: 40698856 / 40708321
Total CPU difference: 36347.59375 / 34798.28125
products component :
Total MEMORY difference: 11056207 / 11104501
Total CPU difference: 11270.84375 / 12082.625

There are no differences in images found by testdiff.
10Commenter 2
Branch [archived branch] has been deleted by Participant.

[revision removed]

Related records