diff --git a/src/util-inl.h b/src/util-inl.h index 833082291a16aa..864f6d86cdf689 100644 --- a/src/util-inl.h +++ b/src/util-inl.h @@ -510,6 +510,22 @@ SlicedArguments::SlicedArguments( (*this)[i] = args[i + start]; } +template +void MaybeStackBuffer::AllocateSufficientStorage( + size_t storage) { + CHECK(!IsInvalidated()); + if (storage > capacity()) { + bool was_allocated = IsAllocated(); + T* allocated_ptr = was_allocated ? buf_ : nullptr; + buf_ = Realloc(allocated_ptr, storage); + capacity_ = storage; + if (!was_allocated && length_ > 0) + memcpy(buf_, buf_st_, length_ * sizeof(buf_[0])); + } + + length_ = storage; +} + template ArrayBufferViewContents::ArrayBufferViewContents( v8::Local value) { diff --git a/src/util.h b/src/util.h index 9be4aef5686d3a..ed4bb7dc2dfbd6 100644 --- a/src/util.h +++ b/src/util.h @@ -412,19 +412,7 @@ class MaybeStackBuffer { // This method can be called multiple times throughout the lifetime of the // buffer, but once this has been called Invalidate() cannot be used. // Content of the buffer in the range [0, length()) is preserved. - void AllocateSufficientStorage(size_t storage) { - CHECK(!IsInvalidated()); - if (storage > capacity()) { - bool was_allocated = IsAllocated(); - T* allocated_ptr = was_allocated ? buf_ : nullptr; - buf_ = Realloc(allocated_ptr, storage); - capacity_ = storage; - if (!was_allocated && length_ > 0) - memcpy(buf_, buf_st_, length_ * sizeof(buf_[0])); - } - - length_ = storage; - } + void AllocateSufficientStorage(size_t storage); void SetLength(size_t length) { // capacity() returns how much memory is actually available.