1
0
mirror of https://github.com/VCMP-SqMod/SqMod.git synced 2024-11-08 00:37:15 +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)
{
o.m_Ptr = nullptr;
o.m_Cap = o.m_Cur = 0;
}
/* --------------------------------------------------------------------------------------------
@ -175,6 +176,7 @@ public:
m_Cap = o.m_Cap;
m_Cur = o.m_Cur;
o.m_Ptr = nullptr;
o.m_Cap = o.m_Cur = 0;
}
return *this;
}
@ -856,6 +858,17 @@ public:
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:
/* --------------------------------------------------------------------------------------------

View File

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