diff options
Diffstat (limited to 'zencore/iobuffer.cpp')
| -rw-r--r-- | zencore/iobuffer.cpp | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/zencore/iobuffer.cpp b/zencore/iobuffer.cpp index a42dd83f4..ec5d599b4 100644 --- a/zencore/iobuffer.cpp +++ b/zencore/iobuffer.cpp @@ -52,7 +52,7 @@ IoBufferCore::IoBufferCore(size_t InSize) m_DataPtr = AllocateBuffer(InSize, sizeof(void*)); m_DataBytes = InSize; - SetIsOwned(true); + SetIsOwnedByThis(true); } IoBufferCore::IoBufferCore(size_t InSize, size_t Alignment) @@ -60,12 +60,12 @@ IoBufferCore::IoBufferCore(size_t InSize, size_t Alignment) m_DataPtr = AllocateBuffer(InSize, Alignment); m_DataBytes = InSize; - SetIsOwned(true); + SetIsOwnedByThis(true); } IoBufferCore::~IoBufferCore() { - if (IsOwned() && m_DataPtr) + if (IsOwnedByThis() && m_DataPtr) { FreeBuffer(); m_DataPtr = nullptr; @@ -104,12 +104,20 @@ IoBufferCore::MakeOwned(bool Immutable) memcpy(OwnedDataPtr, m_DataPtr, m_DataBytes); m_DataPtr = OwnedDataPtr; - SetIsOwned(true); + SetIsOwnedByThis(true); } SetIsImmutable(Immutable); } +void* +IoBufferCore::MutableDataPointer() const +{ + EnsureDataValid(); + ZEN_ASSERT(!IsImmutable()); + return const_cast<void*>(m_DataPtr); +} + ////////////////////////////////////////////////////////////////////////// IoBufferExtendedCore::IoBufferExtendedCore(void* FileHandle, uint64_t Offset, uint64_t Size, bool TransferHandleOwnership) @@ -117,7 +125,7 @@ IoBufferExtendedCore::IoBufferExtendedCore(void* FileHandle, uint64_t Offset, ui , m_FileHandle(FileHandle) , m_FileOffset(Offset) { - m_Flags |= kIsOwned | kIsExtended; + m_Flags |= kIsOwnedByThis | kIsExtended; if (TransferHandleOwnership) { @@ -130,7 +138,7 @@ IoBufferExtendedCore::IoBufferExtendedCore(const IoBufferExtendedCore* Outer, ui , m_FileHandle(Outer->m_FileHandle) , m_FileOffset(Outer->m_FileOffset + Offset) { - m_Flags |= kIsOwned | kIsExtended; + m_Flags |= kIsOwnedByThis | kIsExtended; } IoBufferExtendedCore::~IoBufferExtendedCore() |