1
0
mirror of https://github.com/VCMP-SqMod/SqMod.git synced 2025-01-19 03:57:14 +01:00

Compare commits

...

2 Commits

Author SHA1 Message Date
Sandu Liviu Catalin
4cefc96faf Fix recursive call that could cause infinite loop.
Introduced by an earlier commit.
2021-09-06 00:35:47 +03:00
Sandu Liviu Catalin
608c444694 Update Buffer.hpp 2021-09-06 00:31:59 +03:00
2 changed files with 14 additions and 1 deletions

View File

@ -148,6 +148,7 @@ public:
: m_Ptr(o.m_Ptr), m_Cap(o.m_Cap), m_Cur(o.m_Cur) : m_Ptr(o.m_Ptr), m_Cap(o.m_Cap), m_Cur(o.m_Cur)
{ {
o.m_Ptr = nullptr; o.m_Ptr = nullptr;
o.m_Cap = o.m_Cur = 0;
} }
/* -------------------------------------------------------------------------------------------- /* --------------------------------------------------------------------------------------------
@ -175,6 +176,7 @@ public:
m_Cap = o.m_Cap; m_Cap = o.m_Cap;
m_Cur = o.m_Cur; m_Cur = o.m_Cur;
o.m_Ptr = nullptr; o.m_Ptr = nullptr;
o.m_Cap = o.m_Cur = 0;
} }
return *this; return *this;
} }
@ -856,6 +858,17 @@ public:
m_Cur += Write(m_Cur, str, size); m_Cur += Write(m_Cur, str, size);
} }
/* --------------------------------------------------------------------------------------------
* Steal ownership of the internal memory buffer. Whoever gets hold of the buffer must invoke delete [] on it.
*/
SQMOD_NODISCARD Pointer Steal()
{
Pointer ptr = m_Ptr;
m_Ptr = nullptr;
m_Cap = m_Cur = 0; // Save this before calling this method
return ptr;
}
protected: protected:
/* -------------------------------------------------------------------------------------------- /* --------------------------------------------------------------------------------------------

View File

@ -178,7 +178,7 @@ public:
*/ */
Buffer & Valid() const Buffer & Valid() const
{ {
Valid(); Validate();
// Return the buffer // Return the buffer
return *m_Buffer; return *m_Buffer;
} }