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

Add type-tag retrieval to object wrappers.

This commit is contained in:
Sandu Liviu Catalin 2021-01-30 20:08:54 +02:00
parent bb991181de
commit 4e1b3cd369
2 changed files with 25 additions and 1 deletions

View File

@ -251,7 +251,7 @@ struct LightObj {
/// \return The LightObj itself
///
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
LightObj& operator=(LightObj&& so) {
LightObj& operator=(LightObj&& so) noexcept {
if (this != &so) {
Release();
mObj = so.mObj;
@ -354,6 +354,18 @@ struct LightObj {
return sq_getrefcount(SqVM(), &mObj);
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Retrieves type-tag of the managed object
///
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
AbstractStaticClassData * GetTypeTag() const {
AbstractStaticClassData* typeTag;
sq_pushobject(SqVM(), GetObj());
sq_gettypetag(SqVM(), -1, (SQUserPointer*)&typeTag);
sq_pop(SqVM(), 1);
return typeTag;
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Binds a Table or Class to the object (can be used to facilitate namespaces)
///

View File

@ -368,6 +368,18 @@ public:
return sq_getrefcount(SqVM(), &mObj);
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Retrieves the type-tag of the managed object
///
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
AbstractStaticClassData * GetTypeTag() const {
AbstractStaticClassData* typeTag;
sq_pushobject(SqVM(), GetObj());
sq_gettypetag(SqVM(), -1, (SQUserPointer*)&typeTag);
sq_pop(SqVM(), 1);
return typeTag;
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Attempts to get the value of a slot from the object
///