diff --git a/storm/big/BigBuffer.cpp b/storm/big/BigBuffer.cpp index 71200fb..31969ec 100644 --- a/storm/big/BigBuffer.cpp +++ b/storm/big/BigBuffer.cpp @@ -33,6 +33,14 @@ void BigBuffer::SetCount(uint32_t count) { this->m_data.SetCount(this->m_offset + count); } +void BigBuffer::SetOffset(uint32_t offset) { + this->m_offset = offset; + + if (offset) { + this->GrowToFit(0xFFFFFFFF); + } +} + void BigBuffer::Trim() const { while (this->Count()) { auto& data = const_cast&>(this->m_data); diff --git a/storm/big/BigBuffer.hpp b/storm/big/BigBuffer.hpp index fac408d..7170b36 100644 --- a/storm/big/BigBuffer.hpp +++ b/storm/big/BigBuffer.hpp @@ -18,6 +18,7 @@ class BigBuffer { void GrowToFit(uint32_t index); int32_t IsUsed(uint32_t index) const; void SetCount(uint32_t count); + void SetOffset(uint32_t offset); void Trim() const; };