View Issue Details

IDProjectCategoryView StatusLast Update
0029258Open CASCADEOCCT:Foundation Classespublic2018-06-29 21:19
Reporterkgv Assigned Tobugmaster  
PrioritynormalSeverityfeature 
Status closedResolutionfixed 
Target Version7.3.0Fixed in Version7.3.0 
Summary0029258: Foundation Classes - provide move constructors for string classes
DescriptionMove constructors can be used for code optimization, and should be provided for OCCT string collections.
TagsNo tags attached.
Test case numberNot required

Relationships

child of 0029230 closedkgv Foundation Classes - provide move constructors for basic collections 

Activities

git

2017-10-25 11:02

administrator   ~0071769

Branch CR29258 has been created by kgv.

SHA-1: ff718e461152661dbdb28514ed9de4c551c2fbc2


Detailed log of new commits:

Author: kgv
Date: Sun Oct 15 16:08:01 2017 +0300

    0029258: Foundation Classes - provide move constructors for string classes
    
    OCCT_NO_RVALUE_REFERENCE - added new macros disabling
    move constructors on obsolete compilers.
    
    TCollection_AsciiString, TCollection_ExtendedString,
    NCollection_UtfString - added methods
    Move(), Swap() and move constructor + operator.

kgv

2017-10-25 11:35

developer   ~0071773

Patch is ready for review.

git

2017-10-25 15:41

administrator   ~0071782

Branch CR29258_1 has been created by kgv.

SHA-1: 657aab36115fd53cf5ac2eef00e54c85e563a654


Detailed log of new commits:

Author: kgv
Date: Sun Oct 15 16:08:01 2017 +0300

    0029258: Foundation Classes - provide move constructors for string classes
    
    OCCT_NO_RVALUE_REFERENCE - added new macros disabling
    move constructors on obsolete compilers.
    
    TCollection_AsciiString, TCollection_ExtendedString,
    NCollection_UtfString - added method Swap() and move constructor + operator.

git

2017-10-25 16:00

administrator   ~0071783

Branch CR29258_1 has been updated forcibly by kgv.

SHA-1: f7ebd24fe004a193c1e9209c619d5f78ba446e08

kgv

2017-10-25 17:56

developer   ~0071795

Patch has been updated - Move() methods have been dropped.

git

2017-11-04 23:34

administrator   ~0071988

Branch CR29258_2 has been created by abv.

SHA-1: f31c99112dbd122211f4efc346344de4453b5c6a


Detailed log of new commits:

Author: kgv
Date: Sun Oct 15 16:08:01 2017 +0300

    0029258: Foundation Classes - provide move constructors for string classes
    
    New macro OCCT_NO_RVALUE_REFERENCE is introduced to disable methods using move semantics on obsolete compilers that do not support rvalue references.
    
    TCollection_AsciiString, TCollection_ExtendedString, NCollection_UtfString - added method Swap() and move constructor and assignment operator.
    
    Draw command QATestArrayMove is added to test for memory corruption if NCollection_Array1<> bound to local C buffer is returned from function by value.

git

2017-11-05 07:30

administrator   ~0071989

Branch CR29258_2 has been updated forcibly by abv.

SHA-1: 44d85bd86bb984cc43a53402e05149756fbb0928

abv

2017-11-06 12:28

manager   ~0072000

Reviewed and tested (see Jenkins job CR29258-CR29258-KGV), please integrate

bugmaster

2017-11-07 11:04

administrator   ~0072009

Last edited: 2017-11-07 18:09

Combination -
OCCT branch : CR29258_2 SHA-1: 44d85bd86bb984cc43a53402e05149756fbb0928
Products branch : CR29258 SHA-1: 03cbce0bf57d90513eec16159bf592340e045289
was compiled on Linux, MacOS and Windows platforms and tested on optimize mode.

Number of compiler warnings:
No new/fixed warnings

Regressions/Differences/Improvements:
No regressions/differences

CPU differences:
Linux:
OCCT
Total CPU difference: 20863.200000000554 / 20729.730000000465 [+0.64%]
Products
Total CPU difference: 7951.410000000067 / 7934.890000000088 [+0.21%]
Windows:
OCCT
Total CPU difference: 18479.972060598593 / 18506.86663299847 [-0.15%]
Products
Total CPU difference: 7905.787477800001 / 7981.338762099939 [-0.95%]

Image differences :
No differences that require special attention

Memory differences :
No differences that require special attention

git

2017-11-10 12:15

administrator   ~0072146

Branch CR29258 has been deleted by kgv.

SHA-1: ff718e461152661dbdb28514ed9de4c551c2fbc2

git

2017-11-10 12:15

administrator   ~0072147

Branch CR29258_1 has been deleted by kgv.

SHA-1: f7ebd24fe004a193c1e9209c619d5f78ba446e08

git

2017-11-10 12:15

administrator   ~0072148

Branch CR29258_2 has been deleted by kgv.

SHA-1: 44d85bd86bb984cc43a53402e05149756fbb0928

Related Changesets

occt: master 6286195c

2017-10-15 13:08:01

kgv


Committer: bugmaster Details Diff
0029258: Foundation Classes - provide move constructors for string classes

New macro OCCT_NO_RVALUE_REFERENCE is introduced to disable methods using move semantics on obsolete compilers that do not support rvalue references.

TCollection_AsciiString, TCollection_ExtendedString, NCollection_UtfString - added method Swap(), move constructor, and move assignment operator.

Draw command QATestArrayMove is added to test for memory corruption if NCollection_Array1<> bound to local C buffer is returned from function by value.
Affected Issues
0029258
mod - src/NCollection/NCollection_Array1.hxx Diff File
mod - src/NCollection/NCollection_UtfString.hxx Diff File
mod - src/NCollection/NCollection_UtfString.lxx Diff File
mod - src/QANCollection/QANCollection_Test.cxx Diff File
mod - src/Standard/Standard_Macro.hxx Diff File
mod - src/TCollection/TCollection_AsciiString.cxx Diff File
mod - src/TCollection/TCollection_AsciiString.hxx Diff File
mod - src/TCollection/TCollection_ExtendedString.cxx Diff File
mod - src/TCollection/TCollection_ExtendedString.hxx Diff File

Issue History

Date Modified Username Field Change
2017-10-25 10:52 kgv New Issue
2017-10-25 10:52 kgv Assigned To => abv
2017-10-25 10:52 kgv Relationship added child of 0029230
2017-10-25 11:01 kgv Summary 0029230: Foundation Classes - provide move constructors for string classes => Foundation Classes - provide move constructors for string classes
2017-10-25 11:02 git Note Added: 0071769
2017-10-25 11:35 kgv Note Added: 0071773
2017-10-25 11:35 kgv Status new => resolved
2017-10-25 15:41 git Note Added: 0071782
2017-10-25 16:00 git Note Added: 0071783
2017-10-25 17:56 kgv Note Added: 0071795
2017-11-04 23:34 git Note Added: 0071988
2017-11-05 07:30 git Note Added: 0071989
2017-11-06 12:28 abv Note Added: 0072000
2017-11-06 12:28 abv Assigned To abv => bugmaster
2017-11-06 12:28 abv Status resolved => reviewed
2017-11-07 11:03 bugmaster Test case number => Not required
2017-11-07 11:04 bugmaster Note Added: 0072009
2017-11-07 11:04 bugmaster Status reviewed => tested
2017-11-07 18:09 bugmaster Note Edited: 0072009
2017-11-10 10:13 bugmaster Changeset attached => occt master 6286195c
2017-11-10 10:13 bugmaster Status tested => verified
2017-11-10 10:13 bugmaster Resolution open => fixed
2017-11-10 12:15 git Note Added: 0072146
2017-11-10 12:15 git Note Added: 0072147
2017-11-10 12:15 git Note Added: 0072148
2018-02-20 12:58 aiv Target Version 7.4.0 => 7.3.0
2018-06-29 21:15 aiv Fixed in Version => 7.3.0
2018-06-29 21:19 aiv Status verified => closed