diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/corelib/tools/qvarlengtharray.h | 5 | ||||
-rw-r--r-- | src/corelib/tools/qvarlengtharray.qdoc | 20 |
2 files changed, 22 insertions, 3 deletions
diff --git a/src/corelib/tools/qvarlengtharray.h b/src/corelib/tools/qvarlengtharray.h index 5e57de5767..095e6e929e 100644 --- a/src/corelib/tools/qvarlengtharray.h +++ b/src/corelib/tools/qvarlengtharray.h @@ -103,6 +103,7 @@ public: inline bool isEmpty() const { return (s == 0); } inline void resize(int size); inline void clear() { resize(0); } + inline void squeeze(); inline int capacity() const { return a; } inline void reserve(int size); @@ -244,6 +245,10 @@ Q_OUTOFLINE_TEMPLATE void QVarLengthArray<T, Prealloc>::append(const T *abuf, in } template <class T, int Prealloc> +Q_INLINE_TEMPLATE void QVarLengthArray<T, Prealloc>::squeeze() +{ realloc(s, s); } + +template <class T, int Prealloc> Q_OUTOFLINE_TEMPLATE void QVarLengthArray<T, Prealloc>::realloc(int asize, int aalloc) { Q_ASSERT(aalloc >= asize); diff --git a/src/corelib/tools/qvarlengtharray.qdoc b/src/corelib/tools/qvarlengtharray.qdoc index 5e78946892..93aa5e993e 100644 --- a/src/corelib/tools/qvarlengtharray.qdoc +++ b/src/corelib/tools/qvarlengtharray.qdoc @@ -210,7 +210,7 @@ initialized. For other types, the elements are initialized with a \l{default-constructed value}. - \sa size() + \sa size(), squeeze() */ /*! \fn int QVarLengthArray::capacity() const @@ -223,7 +223,7 @@ need to call this function. If you want to know how many items are in the array, call size(). - \sa reserve() + \sa reserve(), squeeze() */ /*! \fn void QVarLengthArray::reserve(int size) @@ -240,7 +240,21 @@ rarely ever need to call this function. If you want to change the size of the array, call resize(). - \sa capacity() + \sa capacity(), squeeze() +*/ + +/*! \fn void QVarLengthArray::squeeze() + \since 5.1 + + Releases any memory not required to store the items. + If the container can fit its storage on the stack allocation, + it will free the heap allocation and copy the elements back to the stack. + + The sole purpose of this function is to provide a means of fine + tuning QVarLengthArray's memory usage. In general, you will rarely ever + need to call this function. + + \sa reserve(), capacity(), resize() */ /*! \fn T &QVarLengthArray::operator[](int i) |