Changeset 806c18 in git for factory/var_intglobal.cc
- Timestamp:
- Nov 15, 2010, 4:34:57 PM (13 years ago)
- Branches:
- (u'spielwiese', '17f1d200f27c5bd38f5dfc6e8a0879242279d1d8')
- Children:
- 7c3bca08c96331a56864c1d35b8c2e8ff2e0be89
- Parents:
- c840d97af622b4e4da8761738b540e21144f716b
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
factory/var_intglobal.cc
rc840d9 r806c18 41 41 ASSERT( i >= 0, "array index less than zero" ); 42 42 if ( i < _size ) { 43 44 43 _initializedFlags[ i ] = true; 44 return _array[ i ]; 45 45 } else { 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 46 // resize arrays 47 T * newArray = new T[ i+1 ]; 48 bool * newFlags = new bool[ i+1 ]; 49 int j = 0; 50 // copy old contents 51 while ( j < _size ) { 52 newArray[ j ] = _array[ j ]; 53 newFlags[ j ] = _initializedFlags[ j ]; 54 j++; 55 } 56 // mark rest as uninitialized 57 while ( j < i ) { 58 newFlags[ j ] = false; 59 j++; 60 } 61 // actual element mark as initialized 62 newFlags[ i ] = true; 63 64 // make new arrays actual ones 65 delete [] _array; 66 delete [] _initializedFlags; 67 _array = newArray; 68 _initializedFlags = newFlags; 69 _size = i + 1; 70 71 return _array[ i ]; 72 72 } 73 73 } … … 87 87 ASSERT( i >= 0, "array index less than zero" ); 88 88 if ( i >= _size ) 89 89 return false; 90 90 else 91 91 return _initializedFlags[ i ]; 92 92 } 93 93 //}}} … … 106 106 int i = 0; 107 107 while ( i < _size && _initializedFlags[ i ] ) 108 108 i++; 109 109 return i; 110 110 } … … 129 129 delete [] _longName; 130 130 if ( ! longName ) 131 131 _longName = 0; 132 132 else { 133 134 133 _longName = new char[ strlen( longName ) + 1 ]; 134 strcpy( _longName, longName ); 135 135 } 136 136 } … … 173 173 { 174 174 if ( this != &d ) { 175 176 175 initializeLongName( d._longName ); 176 _name = d._name; 177 177 } 178 178 return *this; … … 192 192 { 193 193 if ( ! lhs._longName && ! rhs._longName ) 194 194 return true; 195 195 if ( lhs._longName && rhs._longName ) 196 196 return ! strcmp ( lhs._longName, rhs._longName ); 197 197 else 198 198 return false; 199 199 } 200 200 … … 216 216 { 217 217 if ( this != &d ) { 218 219 220 218 globalVarData::operator= ( d ); 219 _mipo = d._mipo; 220 _reduce = d._reduce; 221 221 } 222 222 return *this; … … 234 234 { 235 235 if ( this != &d ) { 236 237 236 (globalVarData)*this = d; 237 _prim = d._prim; 238 238 } 239 239 return *this;
Note: See TracChangeset
for help on using the changeset viewer.