(file) Return to ArrayImpl.h CVS log (file) (dir) Up to [Pegasus] / pegasus / src / Pegasus / Common

Diff for /pegasus/src/Pegasus/Common/ArrayImpl.h between version 1.6 and 1.7

version 1.6, 2001/12/13 14:53:48 version 1.7, 2002/05/04 02:54:38
Line 56 
Line 56 
 Array<PEGASUS_ARRAY_T>::Array(Uint32 size) Array<PEGASUS_ARRAY_T>::Array(Uint32 size)
 { {
     _rep = Rep::create(size);     _rep = Rep::create(size);
   #ifdef PEGASUS_PLATFORM_HPUX_PARISC_ACC
       InitializeRaw<PEGASUS_ARRAY_T>(_rep->data(), size);
   #else
     InitializeRaw(_rep->data(), size);     InitializeRaw(_rep->data(), size);
   #endif
 } }
  
 #ifndef PEGASUS_ARRAY_T #ifndef PEGASUS_ARRAY_T
Line 82 
Line 86 
 Array<PEGASUS_ARRAY_T>::Array(const PEGASUS_ARRAY_T* items, Uint32 size) Array<PEGASUS_ARRAY_T>::Array(const PEGASUS_ARRAY_T* items, Uint32 size)
 { {
     _rep = Rep::create(size);     _rep = Rep::create(size);
   #ifdef PEGASUS_PLATFORM_HPUX_PARISC_ACC
       CopyToRaw<PEGASUS_ARRAY_T>(_rep->data(), items, size);
   #else
     CopyToRaw(_rep->data(), items, size);     CopyToRaw(_rep->data(), items, size);
   #endif
 } }
  
 #ifndef PEGASUS_ARRAY_T #ifndef PEGASUS_ARRAY_T
Line 132 
Line 140 
     Uint32 size = this->size();     Uint32 size = this->size();
     Rep* rep = Rep::create(capacity);     Rep* rep = Rep::create(capacity);
     rep->size = size;     rep->size = size;
   #ifdef PEGASUS_PLATFORM_HPUX_PARISC_ACC
       CopyToRaw<PEGASUS_ARRAY_T>(rep->data(), _rep->data(), size);
   #else
     CopyToRaw(rep->data(), _rep->data(), size);     CopyToRaw(rep->data(), _rep->data(), size);
   #endif
     Rep::dec(_rep);     Rep::dec(_rep);
     _rep = rep;     _rep = rep;
 } }
Line 159 
Line 171 
 #endif #endif
 void Array<PEGASUS_ARRAY_T>::grow(Uint32 size, const PEGASUS_ARRAY_T& x) void Array<PEGASUS_ARRAY_T>::grow(Uint32 size, const PEGASUS_ARRAY_T& x)
 { {
       _copyOnWrite();
     Uint32 oldSize = _rep->size;     Uint32 oldSize = _rep->size;
     reserve(oldSize + size);     reserve(oldSize + size);
     _copyOnWrite();  
  
     PEGASUS_ARRAY_T* p = _rep->data() + oldSize;     PEGASUS_ARRAY_T* p = _rep->data() + oldSize;
     Uint32 n = size;     Uint32 n = size;
Line 191 
Line 203 
 #endif #endif
 void Array<PEGASUS_ARRAY_T>::append(const PEGASUS_ARRAY_T& x) void Array<PEGASUS_ARRAY_T>::append(const PEGASUS_ARRAY_T& x)
 { {
     reserve(size() + 1);  
     _copyOnWrite();     _copyOnWrite();
       reserve(size() + 1);
     new (_data() + size()) PEGASUS_ARRAY_T(x);     new (_data() + size()) PEGASUS_ARRAY_T(x);
     _rep->size++;     _rep->size++;
 } }
Line 204 
Line 216 
 #endif #endif
 void Array<PEGASUS_ARRAY_T>::append(const PEGASUS_ARRAY_T* x, Uint32 size) void Array<PEGASUS_ARRAY_T>::append(const PEGASUS_ARRAY_T* x, Uint32 size)
 { {
     reserve(this->size() + size);  
     _copyOnWrite();     _copyOnWrite();
       reserve(this->size() + size);
   #ifdef PEGASUS_PLATFORM_HPUX_PARISC_ACC
       CopyToRaw<PEGASUS_ARRAY_T>(_data() + this->size(), x, size);
   #else
     CopyToRaw(_data() + this->size(), x, size);     CopyToRaw(_data() + this->size(), x, size);
   #endif
     _rep->size += size;     _rep->size += size;
 } }
  
Line 217 
Line 233 
 #endif #endif
 void Array<PEGASUS_ARRAY_T>::prepend(const PEGASUS_ARRAY_T& x) void Array<PEGASUS_ARRAY_T>::prepend(const PEGASUS_ARRAY_T& x)
 { {
     reserve(size() + 1);  
     _copyOnWrite();     _copyOnWrite();
       reserve(size() + 1);
     memmove(_data() + 1, _data(), sizeof(PEGASUS_ARRAY_T) * size());     memmove(_data() + 1, _data(), sizeof(PEGASUS_ARRAY_T) * size());
     new(_data()) PEGASUS_ARRAY_T(x);     new(_data()) PEGASUS_ARRAY_T(x);
     _rep->size++;     _rep->size++;
Line 231 
Line 247 
 #endif #endif
 void Array<PEGASUS_ARRAY_T>::prepend(const PEGASUS_ARRAY_T* x, Uint32 size) void Array<PEGASUS_ARRAY_T>::prepend(const PEGASUS_ARRAY_T* x, Uint32 size)
 { {
     reserve(this->size() + size);  
     _copyOnWrite();     _copyOnWrite();
       reserve(this->size() + size);
     memmove(_data() + size, _data(), sizeof(PEGASUS_ARRAY_T) * this->size());     memmove(_data() + size, _data(), sizeof(PEGASUS_ARRAY_T) * this->size());
   #ifdef PEGASUS_PLATFORM_HPUX_PARISC_ACC
       CopyToRaw<PEGASUS_ARRAY_T>(_data(), x, size);
   #else
     CopyToRaw(_data(), x, size);     CopyToRaw(_data(), x, size);
   #endif
     _rep->size += size;     _rep->size += size;
 } }
  
Line 248 
Line 268 
     if (pos > size())     if (pos > size())
         ThrowOutOfBounds();         ThrowOutOfBounds();
  
     reserve(size() + 1);  
     _copyOnWrite();     _copyOnWrite();
       reserve(size() + 1);
  
     Uint32 n = size() - pos;     Uint32 n = size() - pos;
  
Line 270 
Line 290 
     if (pos + size > this->size())     if (pos + size > this->size())
         ThrowOutOfBounds();         ThrowOutOfBounds();
  
     reserve(this->size() + size);  
     _copyOnWrite();     _copyOnWrite();
       reserve(this->size() + size);
  
     Uint32 n = this->size() - pos;     Uint32 n = this->size() - pos;
  
Line 279 
Line 299 
         memmove(         memmove(
             _data() + pos + size, _data() + pos, sizeof(PEGASUS_ARRAY_T) * n);             _data() + pos + size, _data() + pos, sizeof(PEGASUS_ARRAY_T) * n);
  
   #ifdef PEGASUS_PLATFORM_HPUX_PARISC_ACC
       CopyToRaw<PEGASUS_ARRAY_T>(_data() + pos, x, size);
   #else
     CopyToRaw(_data() + pos, x, size);     CopyToRaw(_data() + pos, x, size);
   #endif
     _rep->size += size;     _rep->size += size;
 } }
  
Line 295 
Line 319 
  
     _copyOnWrite();     _copyOnWrite();
  
   #ifdef PEGASUS_PLATFORM_HPUX_PARISC_ACC
       Destroy<PEGASUS_ARRAY_T>(_data() + pos);
   #else
     Destroy(_data() + pos);     Destroy(_data() + pos);
   #endif
  
     Uint32 rem = this->size() - pos - 1;     Uint32 rem = this->size() - pos - 1;
  
Line 317 
Line 345 
  
     _copyOnWrite();     _copyOnWrite();
  
   #ifdef PEGASUS_PLATFORM_HPUX_PARISC_ACC
       Destroy<PEGASUS_ARRAY_T>(_data() + pos, size);
   #else
     Destroy(_data() + pos, size);     Destroy(_data() + pos, size);
   #endif
  
     Uint32 rem = this->size() - (pos + size);     Uint32 rem = this->size() - (pos + size);
  


Legend:
Removed from v.1.6  
changed lines
  Added in v.1.7

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2