1
0
mirror of https://github.com/VCMP-SqMod/SqMod.git synced 2024-11-08 08:47:17 +01:00

Simplify internal buffer implementation where possible.

This commit is contained in:
Sandu Liviu Catalin 2021-09-05 12:03:04 +03:00
parent 9f808376b9
commit 81893bf236
2 changed files with 65 additions and 188 deletions

View File

@ -22,19 +22,13 @@ SQMOD_DECL_TYPENAME(Typename, _SC("SqBuffer"))
// ------------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------------
void SqBuffer::WriteInt64(const SLongInt & val) void SqBuffer::WriteInt64(const SLongInt & val)
{ {
// Validate the managed buffer reference Valid().Push< int64_t >(val.GetNum());
Validate();
// Perform the requested operation
m_Buffer->Push< int64_t >(val.GetNum());
} }
// ------------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------------
void SqBuffer::WriteUint64(const ULongInt & val) void SqBuffer::WriteUint64(const ULongInt & val)
{ {
// Validate the managed buffer reference Valid().Push< uint64_t >(val.GetNum());
Validate();
// Perform the requested operation
m_Buffer->Push< uint64_t >(val.GetNum());
} }
// ------------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------------
@ -83,91 +77,61 @@ SQInteger SqBuffer::WriteClientString(StackStrF & val)
// ------------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------------
void SqBuffer::WriteAABB(const AABB & val) void SqBuffer::WriteAABB(const AABB & val)
{ {
// Validate the managed buffer reference Valid().Push< AABB >(val);
Validate();
// Perform the requested operation
m_Buffer->Push< AABB >(val);
} }
// ------------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------------
void SqBuffer::WriteCircle(const Circle & val) void SqBuffer::WriteCircle(const Circle & val)
{ {
// Validate the managed buffer reference Valid().Push< Circle >(val);
Validate();
// Perform the requested operation
m_Buffer->Push< Circle >(val);
} }
// ------------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------------
void SqBuffer::WriteColor3(const Color3 & val) void SqBuffer::WriteColor3(const Color3 & val)
{ {
// Validate the managed buffer reference Valid().Push< Color3 >(val);
Validate();
// Perform the requested operation
m_Buffer->Push< Color3 >(val);
} }
// ------------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------------
void SqBuffer::WriteColor4(const Color4 & val) void SqBuffer::WriteColor4(const Color4 & val)
{ {
// Validate the managed buffer reference Valid().Push< Color4 >(val);
Validate();
// Perform the requested operation
m_Buffer->Push< Color4 >(val);
} }
// ------------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------------
void SqBuffer::WriteQuaternion(const Quaternion & val) void SqBuffer::WriteQuaternion(const Quaternion & val)
{ {
// Validate the managed buffer reference Valid().Push< Quaternion >(val);
Validate();
// Perform the requested operation
m_Buffer->Push< Quaternion >(val);
} }
// ------------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------------
void SqBuffer::WriteSphere(const Sphere &val) void SqBuffer::WriteSphere(const Sphere &val)
{ {
// Validate the managed buffer reference Valid().Push< Sphere >(val);
Validate();
// Perform the requested operation
m_Buffer->Push< Sphere >(val);
} }
// ------------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------------
void SqBuffer::WriteVector2(const Vector2 & val) void SqBuffer::WriteVector2(const Vector2 & val)
{ {
// Validate the managed buffer reference Valid().Push< Vector2 >(val);
Validate();
// Perform the requested operation
m_Buffer->Push< Vector2 >(val);
} }
// ------------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------------
void SqBuffer::WriteVector2i(const Vector2i & val) void SqBuffer::WriteVector2i(const Vector2i & val)
{ {
// Validate the managed buffer reference Valid().Push< Vector2i >(val);
Validate();
// Perform the requested operation
m_Buffer->Push< Vector2i >(val);
} }
// ------------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------------
void SqBuffer::WriteVector3(const Vector3 & val) void SqBuffer::WriteVector3(const Vector3 & val)
{ {
// Validate the managed buffer reference Valid().Push< Vector3 >(val);
Validate();
// Perform the requested operation
m_Buffer->Push< Vector3 >(val);
} }
// ------------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------------
void SqBuffer::WriteVector4(const Vector4 & val) void SqBuffer::WriteVector4(const Vector4 & val)
{ {
// Validate the managed buffer reference Valid().Push< Vector4 >(val);
Validate();
// Perform the requested operation
m_Buffer->Push< Vector4 >(val);
} }
// ------------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------------

View File

@ -45,7 +45,6 @@ public:
SqBuffer() SqBuffer()
: m_Buffer(new Buffer()) : m_Buffer(new Buffer())
{ {
/* ... */
} }
/* -------------------------------------------------------------------------------------------- /* --------------------------------------------------------------------------------------------
@ -54,7 +53,6 @@ public:
explicit SqBuffer(SQInteger n) explicit SqBuffer(SQInteger n)
: m_Buffer(new Buffer(ConvTo< SzType >::From(n))) : m_Buffer(new Buffer(ConvTo< SzType >::From(n)))
{ {
/* ... */
} }
/* -------------------------------------------------------------------------------------------- /* --------------------------------------------------------------------------------------------
@ -63,7 +61,6 @@ public:
SqBuffer(SQInteger n, SQInteger c) SqBuffer(SQInteger n, SQInteger c)
: m_Buffer(new Buffer(ConvTo< SzType >::From(n), ConvTo< SzType >::From(c))) : m_Buffer(new Buffer(ConvTo< SzType >::From(n), ConvTo< SzType >::From(c)))
{ {
/* ... */
} }
/* -------------------------------------------------------------------------------------------- /* --------------------------------------------------------------------------------------------
@ -72,7 +69,6 @@ public:
SqBuffer(ConstPtr p, SQInteger n) SqBuffer(ConstPtr p, SQInteger n)
: m_Buffer(new Buffer(p, ConvTo< SzType >::From(n))) : m_Buffer(new Buffer(p, ConvTo< SzType >::From(n)))
{ {
/* ... */
} }
/* -------------------------------------------------------------------------------------------- /* --------------------------------------------------------------------------------------------
@ -81,7 +77,6 @@ public:
SqBuffer(ConstPtr p, SQInteger n, SQInteger c) SqBuffer(ConstPtr p, SQInteger n, SQInteger c)
: m_Buffer(new Buffer(p, ConvTo< SzType >::From(n), ConvTo< SzType >::From(c))) : m_Buffer(new Buffer(p, ConvTo< SzType >::From(n), ConvTo< SzType >::From(c)))
{ {
/* ... */
} }
/* -------------------------------------------------------------------------------------------- /* --------------------------------------------------------------------------------------------
@ -90,7 +85,6 @@ public:
explicit SqBuffer(const SRef & ref) // NOLINT(modernize-pass-by-value) explicit SqBuffer(const SRef & ref) // NOLINT(modernize-pass-by-value)
: m_Buffer(ref) : m_Buffer(ref)
{ {
/* ... */
} }
/* -------------------------------------------------------------------------------------------- /* --------------------------------------------------------------------------------------------
@ -99,7 +93,6 @@ public:
explicit SqBuffer(const Buffer & b) explicit SqBuffer(const Buffer & b)
: m_Buffer(new Buffer(b)) : m_Buffer(new Buffer(b))
{ {
/* ... */
} }
/* -------------------------------------------------------------------------------------------- /* --------------------------------------------------------------------------------------------
@ -108,7 +101,6 @@ public:
explicit SqBuffer(Buffer && b) explicit SqBuffer(Buffer && b)
: m_Buffer(new Buffer(std::move(b))) : m_Buffer(new Buffer(std::move(b)))
{ {
/* ... */
} }
/* -------------------------------------------------------------------------------------------- /* --------------------------------------------------------------------------------------------
@ -181,15 +173,32 @@ public:
} }
} }
/* --------------------------------------------------------------------------------------------
* Validate the managed memory buffer reference.
*/
Buffer & Valid() const
{
Valid();
// Return the buffer
return *m_Buffer;
}
/* --------------------------------------------------------------------------------------------
* Validate the managed memory buffer reference and the buffer itself.
*/
Buffer & ValidDeeper() const
{
ValidateDeeper();
// Return the buffer
return *m_Buffer;
}
/* -------------------------------------------------------------------------------------------- /* --------------------------------------------------------------------------------------------
* Retrieve a certain element type at the specified position. * Retrieve a certain element type at the specified position.
*/ */
SQMOD_NODISCARD Value Get(SQInteger n) const SQMOD_NODISCARD Value Get(SQInteger n) const
{ {
// Validate the managed buffer reference return Valid().At(ConvTo< SzType >::From(n));
Validate();
// Return the requested element
return m_Buffer->At(ConvTo< SzType >::From(n));
} }
/* -------------------------------------------------------------------------------------------- /* --------------------------------------------------------------------------------------------
@ -197,10 +206,7 @@ public:
*/ */
void Set(SQInteger n, SQInteger v) void Set(SQInteger n, SQInteger v)
{ {
// Validate the managed buffer reference Valid().At(ConvTo< SzType >::From(n)) = ConvTo< Value >::From(v);
Validate();
// Return the requested element
m_Buffer->At(ConvTo< SzType >::From(n)) = ConvTo< Value >::From(v);
} }
/* -------------------------------------------------------------------------------------------- /* --------------------------------------------------------------------------------------------
@ -208,10 +214,7 @@ public:
*/ */
SQMOD_NODISCARD Value GetFront() const SQMOD_NODISCARD Value GetFront() const
{ {
// Validate the managed buffer reference return Valid().Front();
Validate();
// Return the requested element
return m_Buffer->Front();
} }
/* -------------------------------------------------------------------------------------------- /* --------------------------------------------------------------------------------------------
@ -219,10 +222,7 @@ public:
*/ */
void SetFront(SQInteger v) void SetFront(SQInteger v)
{ {
// Validate the managed buffer reference Valid().Front() = ConvTo< Value >::From(v);
Validate();
// Return the requested element
m_Buffer->Front() = ConvTo< Value >::From(v);
} }
/* -------------------------------------------------------------------------------------------- /* --------------------------------------------------------------------------------------------
@ -230,10 +230,7 @@ public:
*/ */
SQMOD_NODISCARD Value GetNext() const SQMOD_NODISCARD Value GetNext() const
{ {
// Validate the managed buffer reference return Valid().Next();
Validate();
// Return the requested element
return m_Buffer->Next();
} }
/* -------------------------------------------------------------------------------------------- /* --------------------------------------------------------------------------------------------
@ -241,10 +238,7 @@ public:
*/ */
void SetNext(SQInteger v) void SetNext(SQInteger v)
{ {
// Validate the managed buffer reference Valid().Next() = ConvTo< Value >::From(v);
Validate();
// Return the requested element
m_Buffer->Next() = ConvTo< Value >::From(v);
} }
/* -------------------------------------------------------------------------------------------- /* --------------------------------------------------------------------------------------------
@ -252,10 +246,7 @@ public:
*/ */
SQMOD_NODISCARD Value GetBack() const SQMOD_NODISCARD Value GetBack() const
{ {
// Validate the managed buffer reference return Valid().Back();
Validate();
// Return the requested element
return m_Buffer->Back();
} }
/* -------------------------------------------------------------------------------------------- /* --------------------------------------------------------------------------------------------
@ -263,10 +254,7 @@ public:
*/ */
void SetBack(SQInteger v) void SetBack(SQInteger v)
{ {
// Validate the managed buffer reference Valid().Back() = ConvTo< Value >::From(v);
Validate();
// Return the requested element
m_Buffer->Back() = ConvTo< Value >::From(v);
} }
/* -------------------------------------------------------------------------------------------- /* --------------------------------------------------------------------------------------------
@ -274,10 +262,7 @@ public:
*/ */
SQMOD_NODISCARD Value GetPrev() const SQMOD_NODISCARD Value GetPrev() const
{ {
// Validate the managed buffer reference return Valid().Prev();
Validate();
// Return the requested element
return m_Buffer->Prev();
} }
/* -------------------------------------------------------------------------------------------- /* --------------------------------------------------------------------------------------------
@ -285,10 +270,7 @@ public:
*/ */
void SetPrev(SQInteger v) void SetPrev(SQInteger v)
{ {
// Validate the managed buffer reference Valid().Prev() = ConvTo< Value >::From(v);
Validate();
// Return the requested element
m_Buffer->Prev() = ConvTo< Value >::From(v);
} }
/* -------------------------------------------------------------------------------------------- /* --------------------------------------------------------------------------------------------
@ -296,10 +278,7 @@ public:
*/ */
void Advance(SQInteger n) void Advance(SQInteger n)
{ {
// Validate the managed buffer reference Valid().Advance(ConvTo< SzType >::From(n));
Validate();
// Perform the requested operation
m_Buffer->Advance(ConvTo< SzType >::From(n));
} }
/* -------------------------------------------------------------------------------------------- /* --------------------------------------------------------------------------------------------
@ -307,10 +286,7 @@ public:
*/ */
void Retreat(SQInteger n) void Retreat(SQInteger n)
{ {
// Validate the managed buffer reference Valid().Retreat(ConvTo< SzType >::From(n));
Validate();
// Perform the requested operation
m_Buffer->Retreat(ConvTo< SzType >::From(n));
} }
/* -------------------------------------------------------------------------------------------- /* --------------------------------------------------------------------------------------------
@ -318,10 +294,7 @@ public:
*/ */
void Move(SQInteger n) void Move(SQInteger n)
{ {
// Validate the managed buffer reference Valid().Move(ConvTo< SzType >::From(n));
Validate();
// Perform the requested operation
m_Buffer->Move(ConvTo< SzType >::From(n));
} }
/* -------------------------------------------------------------------------------------------- /* --------------------------------------------------------------------------------------------
@ -329,10 +302,7 @@ public:
*/ */
void Push(SQInteger v) void Push(SQInteger v)
{ {
// Validate the managed buffer reference Valid().Push(ConvTo< Value >::From(v));
Validate();
// Perform the requested operation
m_Buffer->Push(ConvTo< Value >::From(v));
} }
/* -------------------------------------------------------------------------------------------- /* --------------------------------------------------------------------------------------------
@ -340,10 +310,7 @@ public:
*/ */
SQMOD_NODISCARD Value GetCursor() const SQMOD_NODISCARD Value GetCursor() const
{ {
// Validate the managed buffer reference return Valid().Cursor();
Validate();
// Return the requested element
return m_Buffer->Cursor();
} }
/* -------------------------------------------------------------------------------------------- /* --------------------------------------------------------------------------------------------
@ -351,10 +318,7 @@ public:
*/ */
void SetCursor(SQInteger v) void SetCursor(SQInteger v)
{ {
// Validate the managed buffer reference Valid().Cursor() = ConvTo< Value >::From(v);
Validate();
// Return the requested element
m_Buffer->Cursor() = ConvTo< Value >::From(v);
} }
/* -------------------------------------------------------------------------------------------- /* --------------------------------------------------------------------------------------------
@ -362,10 +326,7 @@ public:
*/ */
SQMOD_NODISCARD Value GetBefore() const SQMOD_NODISCARD Value GetBefore() const
{ {
// Validate the managed buffer reference return Valid().Before();
Validate();
// Return the requested element
return m_Buffer->Before();
} }
/* -------------------------------------------------------------------------------------------- /* --------------------------------------------------------------------------------------------
@ -373,10 +334,7 @@ public:
*/ */
void SetBefore(SQInteger v) void SetBefore(SQInteger v)
{ {
// Validate the managed buffer reference Valid().Before() = ConvTo< Value >::From(v);
Validate();
// Return the requested element
m_Buffer->Before() = ConvTo< Value >::From(v);
} }
/* -------------------------------------------------------------------------------------------- /* --------------------------------------------------------------------------------------------
@ -384,10 +342,7 @@ public:
*/ */
SQMOD_NODISCARD Value GetAfter() const SQMOD_NODISCARD Value GetAfter() const
{ {
// Validate the managed buffer reference return Valid().After();
Validate();
// Return the requested element
return m_Buffer->After();
} }
/* -------------------------------------------------------------------------------------------- /* --------------------------------------------------------------------------------------------
@ -395,10 +350,7 @@ public:
*/ */
void SetAfter(SQInteger v) void SetAfter(SQInteger v)
{ {
// Validate the managed buffer reference Valid().After() = ConvTo< Value >::From(v);
Validate();
// Return the requested element
m_Buffer->After() = ConvTo< Value >::From(v);
} }
/* -------------------------------------------------------------------------------------------- /* --------------------------------------------------------------------------------------------
@ -414,10 +366,7 @@ public:
*/ */
SQMOD_NODISCARD SzType GetSize() const SQMOD_NODISCARD SzType GetSize() const
{ {
// Validate the managed buffer reference return Valid().CapacityAs< Value >();
Validate();
// Return the requested information
return m_Buffer->CapacityAs< Value >();
} }
/* -------------------------------------------------------------------------------------------- /* --------------------------------------------------------------------------------------------
@ -425,10 +374,7 @@ public:
*/ */
SQMOD_NODISCARD SzType GetCapacity() const SQMOD_NODISCARD SzType GetCapacity() const
{ {
// Validate the managed buffer reference return Valid().Capacity();
Validate();
// Return the requested information
return m_Buffer->Capacity();
} }
/* -------------------------------------------------------------------------------------------- /* --------------------------------------------------------------------------------------------
@ -436,10 +382,7 @@ public:
*/ */
SQMOD_NODISCARD SzType GetPosition() const SQMOD_NODISCARD SzType GetPosition() const
{ {
// Validate the managed buffer reference return Valid().Position();
Validate();
// Return the requested information
return m_Buffer->Position();
} }
/* -------------------------------------------------------------------------------------------- /* --------------------------------------------------------------------------------------------
@ -447,10 +390,7 @@ public:
*/ */
SQMOD_NODISCARD SzType GetRemaining() const SQMOD_NODISCARD SzType GetRemaining() const
{ {
// Validate the managed buffer reference return Valid().Remaining();
Validate();
// Return the requested information
return m_Buffer->Remaining();
} }
/* -------------------------------------------------------------------------------------------- /* --------------------------------------------------------------------------------------------
@ -458,10 +398,7 @@ public:
*/ */
void Grow(SQInteger n) void Grow(SQInteger n)
{ {
// Validate the managed buffer reference return Valid().Grow(ConvTo< SzType >::From(n) * sizeof(Value));
Validate();
// Perform the requested operation
return m_Buffer->Grow(ConvTo< SzType >::From(n) * sizeof(Value));
} }
/* -------------------------------------------------------------------------------------------- /* --------------------------------------------------------------------------------------------
@ -490,10 +427,7 @@ public:
*/ */
void WriteInt8(SQInteger val) void WriteInt8(SQInteger val)
{ {
// Validate the managed buffer reference Valid().Push< int8_t >(ConvTo< int8_t >::From(val));
Validate();
// Perform the requested operation
m_Buffer->Push< int8_t >(ConvTo< int8_t >::From(val));
} }
/* -------------------------------------------------------------------------------------------- /* --------------------------------------------------------------------------------------------
@ -501,10 +435,7 @@ public:
*/ */
void WriteUint8(SQInteger val) void WriteUint8(SQInteger val)
{ {
// Validate the managed buffer reference Valid().Push< uint8_t >(ConvTo< uint8_t >::From(val));
Validate();
// Perform the requested operation
m_Buffer->Push< uint8_t >(ConvTo< uint8_t >::From(val));
} }
/* -------------------------------------------------------------------------------------------- /* --------------------------------------------------------------------------------------------
@ -512,10 +443,7 @@ public:
*/ */
void WriteInt16(SQInteger val) void WriteInt16(SQInteger val)
{ {
// Validate the managed buffer reference Valid().Push< int16_t >(ConvTo< int16_t >::From(val));
Validate();
// Perform the requested operation
m_Buffer->Push< int16_t >(ConvTo< int16_t >::From(val));
} }
/* -------------------------------------------------------------------------------------------- /* --------------------------------------------------------------------------------------------
@ -523,10 +451,7 @@ public:
*/ */
void WriteUint16(SQInteger val) void WriteUint16(SQInteger val)
{ {
// Validate the managed buffer reference Valid().Push< uint16_t >(ConvTo< uint16_t >::From(val));
Validate();
// Perform the requested operation
m_Buffer->Push< uint16_t >(ConvTo< uint16_t >::From(val));
} }
/* -------------------------------------------------------------------------------------------- /* --------------------------------------------------------------------------------------------
@ -534,10 +459,7 @@ public:
*/ */
void WriteInt32(SQInteger val) void WriteInt32(SQInteger val)
{ {
// Validate the managed buffer reference Valid().Push< int32_t >(ConvTo< int32_t >::From(val));
Validate();
// Perform the requested operation
m_Buffer->Push< int32_t >(ConvTo< int32_t >::From(val));
} }
/* -------------------------------------------------------------------------------------------- /* --------------------------------------------------------------------------------------------
@ -545,10 +467,7 @@ public:
*/ */
void WriteUint32(SQInteger val) void WriteUint32(SQInteger val)
{ {
// Validate the managed buffer reference Valid().Push< uint32_t >(ConvTo< uint32_t >::From(val));
Validate();
// Perform the requested operation
m_Buffer->Push< uint32_t >(ConvTo< uint32_t >::From(val));
} }
/* -------------------------------------------------------------------------------------------- /* --------------------------------------------------------------------------------------------
@ -566,10 +485,7 @@ public:
*/ */
void WriteFloat32(SQFloat val) void WriteFloat32(SQFloat val)
{ {
// Validate the managed buffer reference Valid().Push< float >(ConvTo< float >::From(val));
Validate();
// Perform the requested operation
m_Buffer->Push< float >(ConvTo< float >::From(val));
} }
/* -------------------------------------------------------------------------------------------- /* --------------------------------------------------------------------------------------------
@ -577,10 +493,7 @@ public:
*/ */
void WriteFloat64(SQFloat val) void WriteFloat64(SQFloat val)
{ {
// Validate the managed buffer reference Valid().Push< double >(ConvTo< double >::From(val));
Validate();
// Perform the requested operation
m_Buffer->Push< double >(ConvTo< double >::From(val));
} }
/* -------------------------------------------------------------------------------------------- /* --------------------------------------------------------------------------------------------