mirror of
https://github.com/zebrajr/node.git
synced 2026-01-15 12:15:26 +00:00
src: make util.h self-containted
Before it depended on util-inl.h. Fix it by moving MaybeStackBuffer::AllocateSufficientStorage() into util-inl.h PR-URL: https://github.com/nodejs/node/pull/46817 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
This commit is contained in:
@@ -510,6 +510,22 @@ SlicedArguments::SlicedArguments(
|
||||
(*this)[i] = args[i + start];
|
||||
}
|
||||
|
||||
template <typename T, size_t kStackStorageSize>
|
||||
void MaybeStackBuffer<T, kStackStorageSize>::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 <typename T, size_t S>
|
||||
ArrayBufferViewContents<T, S>::ArrayBufferViewContents(
|
||||
v8::Local<v8::Value> value) {
|
||||
|
||||
14
src/util.h
14
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.
|
||||
|
||||
Reference in New Issue
Block a user