View Issue Details

IDProjectCategoryView StatusLast Update
0028470Open CASCADEOCCT:Foundation Classespublic2019-02-06 12:36
Reporterkgv Assigned Tobugmaster  
PrioritynormalSeverityfeature 
Status closedResolutionfixed 
Target Version7.2.0Fixed in Version7.2.0 
Summary0028470: Foundation Classes, NCollection_Array1 - add Resize() method for re-allocating array with new limits
DescriptionNCollection_Array1 by design defines array of fixed size - the size that can be specified only within constructor.

In many contexts, this restriction is redundant and inconvenient - it is desirable to provide interface for resizing array to new limits.
Steps To ReproduceN/A
TagsNo tags attached.
Test case numberNot needed

Relationships

parent of 0028796 closedbugmaster Coding Rules - fix declaration of Move constructor in NCollection_Array1 
related to 0029230 closedkgv Foundation Classes - provide move constructors for basic collections 
related to 0030478 closedapn Foundation Classes, NCollection_Array2 - provide Resize/Move methods consistent to NCollection_Array1 

Activities

git

2017-02-17 12:36

administrator   ~0063873

Branch CR28470 has been created by kgv.

SHA-1: 364c71f0a88078b936a0c76a42832024f6bd1135


Detailed log of new commits:

Author: kgv
Date: Fri Feb 17 12:35:13 2017 +0300

    0028470: Foundation Classes, NCollection_Array1 - add Resize() method for re-allocating array with new limits
    
    NCollection_Array1 now provides method Resize() for re-allocating array to new bounds.
    Added Move Constructor and Move Assignment operator.

kgv

2017-02-17 12:36

developer   ~0063874

Patch is ready for review.

git

2017-02-17 12:43

administrator   ~0063875

Branch CR28470 has been updated forcibly by kgv.

SHA-1: bd1b9ede148bba8fa384000b292437ff84f60d6f

git

2017-02-17 13:48

administrator   ~0063883

Branch CR28470 has been updated forcibly by kgv.

SHA-1: 885933e0a5e9505f3203b1716a73ea3913b22584

abv

2017-02-24 22:41

manager   ~0063989

Reviewed, please test

I have only one doubt: it may be not always necessary to spent efort for copying old data in Resize(), should not we add parameter to make this step conditional?

git

2017-02-27 13:02

administrator   ~0064002

Branch CR28470 has been updated by kgv.

SHA-1: 2649b14edf9835dc77652c370cc082441ec54a1e


Detailed log of new commits:

Author: kgv
Date: Mon Feb 27 13:02:00 2017 +0300

    NCollection_Array1::Resize() - added argument theToCopyData.
    Added empty constructor for NCollection_Array1.

git

2017-02-27 13:04

administrator   ~0064003

Branch CR28470_1 has been created by kgv.

SHA-1: caaa078fe6bd8da6ab0ead7fede36c838d4d8d88


Detailed log of new commits:

Author: kgv
Date: Fri Feb 17 12:35:13 2017 +0300

    0028470: Foundation Classes, NCollection_Array1 - add Resize() method for re-allocating array with new limits
    
    NCollection_Array1 now provides method Resize() for re-allocating array to new bounds.
    Added Move Constructor and Move Assignment operator.
    Added empty constructor defining array of zero size.
    
    Poly_Triangulation, dropped duplicating fields myNbNodes and myNbTriangles.
    Removed unused file Poly_Triangulation.lxx.

kgv

2017-02-27 13:05

developer   ~0064004

Remark has been applied.

apv

2017-03-01 17:37

tester   ~0064062

Dear BugMaster,

Branch CR28470_1 from occt git-repository (and master from products git-repository) was compiled on Linux, MacOS and Windows platforms and tested.
SHA-1: caaa078fe6bd8da6ab0ead7fede36c838d4d8d88

Number of compiler warnings:
occt component:
   Linux: 0 (0 on master)
   Windows: 0 (0 on master)
   MasOS: 0 (0 on master)
products component:
   Linux: 66
   Windows: 0
   MacOS: 1199

Regressions/Differences:
Not detected

Testing cases:
Not needed

Testing on Linux:
Total MEMORY difference: 92575991 / 93218501 [-0.69%]
Total CPU difference: 19896.710000000112 / 19801.68000000022 [+0.48%]

Testing on Windows:
Total MEMORY difference: 57828100 / 57829936 [-0.00%]
Total CPU difference: 18679.637740498587 / 18793.846072598604 [-0.61%]

git

2017-03-03 16:29

administrator   ~0064109

Branch CR28470_1 has been updated forcibly by inv.

SHA-1: 37ccaa2392432bfb0eeb23320ea0b855d025a5d8

apv

2017-03-07 16:56

tester   ~0064181

Dear BugMaster,

Branch CR28470_1 from occt git-repository (and master from products git-repository) was compiled on Linux, MacOS and Windows platforms and tested.
SHA-1: 37ccaa2392432bfb0eeb23320ea0b855d025a5d8

Number of compiler warnings:
occt component:
   Linux: 0 (0 on master)
   Windows: 0 (0 on master)
   MasOS: 0 (0 on master)
products component:
   Linux: 64
   Windows: 0
   MacOS: 1209

Regressions/Differences:
Not detected

Testing cases:
Not needed

Testing on Linux:
Total MEMORY difference: 92886270 / 92373786 [+0.55%]
Total CPU difference: 20037.9700000003 / 19841.150000000398 [+0.99%]

Testing on Windows:
Total MEMORY difference: 57664094 / 57663643 [+0.00%]
Total CPU difference: 18485.697297298568 / 18635.5206576986 [-0.80%]

git

2017-03-20 14:33

administrator   ~0064456

Branch CR28470_1 has been deleted by inv.

SHA-1: 37ccaa2392432bfb0eeb23320ea0b855d025a5d8

git

2017-03-20 14:34

administrator   ~0064471

Branch CR28470 has been deleted by inv.

SHA-1: 2649b14edf9835dc77652c370cc082441ec54a1e

Related Changesets

occt: master 4954e497

2017-02-17 09:35:13

kgv


Committer: bugmaster Details Diff
0028470: Foundation Classes, NCollection_Array1 - add Resize() method for re-allocating array with new limits

NCollection_Array1 now provides method Resize() for re-allocating array to new bounds.
Added Move Constructor and Move Assignment operator.
Added empty constructor defining array of zero size.

Poly_Triangulation, dropped duplicating fields myNbNodes and myNbTriangles.
Removed unused file Poly_Triangulation.lxx.

Use std::move within NCollection_Array1::operator=() [fix for 0028470]
Affected Issues
0028470
mod - src/NCollection/NCollection_Array1.hxx Diff File
mod - src/Poly/FILES Diff File
mod - src/Poly/Poly_Triangulation.cxx Diff File
mod - src/Poly/Poly_Triangulation.hxx Diff File
rm - src/Poly/Poly_Triangulation.lxx Diff File

Issue History

Date Modified Username Field Change
2017-02-17 11:54 kgv New Issue
2017-02-17 11:54 kgv Assigned To => abv
2017-02-17 12:36 git Note Added: 0063873
2017-02-17 12:36 kgv Note Added: 0063874
2017-02-17 12:36 kgv Status new => resolved
2017-02-17 12:43 git Note Added: 0063875
2017-02-17 13:48 git Note Added: 0063883
2017-02-24 22:41 abv Note Added: 0063989
2017-02-24 22:41 abv Assigned To abv => bugmaster
2017-02-24 22:41 abv Status resolved => reviewed
2017-02-27 13:02 git Note Added: 0064002
2017-02-27 13:04 git Note Added: 0064003
2017-02-27 13:05 kgv Note Added: 0064004
2017-02-28 18:22 apv Assigned To bugmaster => apv
2017-03-01 17:35 apv Test case number => Not needed
2017-03-01 17:37 apv Note Added: 0064062
2017-03-01 17:37 apv Assigned To apv => bugmaster
2017-03-01 17:37 apv Status reviewed => tested
2017-03-03 16:23 bugmaster Assigned To bugmaster => apv
2017-03-03 16:23 bugmaster Status tested => assigned
2017-03-03 16:23 bugmaster Assigned To apv => abv
2017-03-03 16:23 bugmaster Status assigned => resolved
2017-03-03 16:23 bugmaster Assigned To abv => bugmaster
2017-03-03 16:23 bugmaster Status resolved => reviewed
2017-03-03 16:23 bugmaster Assigned To bugmaster => apv
2017-03-03 16:29 git Note Added: 0064109
2017-03-07 16:56 apv Note Added: 0064181
2017-03-07 16:56 apv Assigned To apv => bugmaster
2017-03-07 16:56 apv Status reviewed => tested
2017-03-17 14:28 bugmaster Changeset attached => occt master 4954e497
2017-03-17 14:28 bugmaster Status tested => verified
2017-03-17 14:28 bugmaster Resolution open => fixed
2017-03-20 14:33 git Note Added: 0064456
2017-03-20 14:34 git Note Added: 0064471
2017-05-29 12:52 kgv Relationship added parent of 0028796
2017-09-29 16:18 aiv Fixed in Version => 7.2.0
2017-09-29 16:25 aiv Status verified => closed
2017-10-15 20:48 kgv Relationship added related to 0029230
2019-02-06 12:36 kgv Relationship added related to 0030478