src/corelib/tools/qvarlengtharray.h
changeset 19 fcece45ef507
parent 18 2f34d5167611
child 29 b72c6db6890b
equal deleted inserted replaced
18:2f34d5167611 19:fcece45ef507
   220                         qFree(oldPtr);
   220                         qFree(oldPtr);
   221                     QT_RETHROW;
   221                     QT_RETHROW;
   222                 }
   222                 }
   223             } else {
   223             } else {
   224                 qMemCopy(ptr, oldPtr, qMin(asize, osize) * sizeof(T));
   224                 qMemCopy(ptr, oldPtr, qMin(asize, osize) * sizeof(T));
   225                 s = asize;
       
   226             }
   225             }
   227         } else {
   226         } else {
   228             ptr = oldPtr;
   227             ptr = oldPtr;
   229             return;
   228             return;
   230         }
   229         }
   231     }
   230     }
   232 
   231 
   233     if (QTypeInfo<T>::isComplex) {
   232     if (QTypeInfo<T>::isComplex) {
   234         while (osize > asize)
   233         while (osize > asize)
   235             (oldPtr+(--osize))->~T();
   234             (oldPtr+(--osize))->~T();
   236         if( oldPtr == ptr )
   235         if (!QTypeInfo<T>::isStatic)
   237             s = osize;
   236             s = osize;
   238     }
   237     }
   239 
   238 
   240     if (oldPtr != reinterpret_cast<T *>(array) && oldPtr != ptr)
   239     if (oldPtr != reinterpret_cast<T *>(array) && oldPtr != ptr)
   241         qFree(oldPtr);
   240         qFree(oldPtr);