ssize_t VectorImpl::insertVectorAt(const VectorImpl& vector, size_t index) { if (index > size()) return BAD_INDEX; void* where = _grow(index, vector.size()); if (where) { _do_copy(where, vector.arrayImpl(), vector.size()); } return where ? index : (ssize_t)NO_MEMORY; }
ssize_t SortedVectorImpl::merge(const VectorImpl& vector) { // naive merge... if (!vector.isEmpty()) { const void* buffer = vector.arrayImpl(); const size_t is = itemSize(); size_t s = vector.size(); for (size_t i=0 ; i<s ; i++) { ssize_t err = add( reinterpret_cast<const char*>(buffer) + i*is ); if (err<0) { return err; } } } return NO_ERROR; }
ssize_t VectorImpl::insertVectorAt(const VectorImpl& vector, size_t index) { return insertArrayAt(vector.arrayImpl(), index, vector.size()); }