diff --git a/include/mgba/script/types.h b/include/mgba/script/types.h index b5f52d2dd..9e2fad9fd 100644 --- a/include/mgba/script/types.h +++ b/include/mgba/script/types.h @@ -23,11 +23,11 @@ CXX_GUARD_START #define mSCRIPT_TYPE_C_S64 int64_t #define mSCRIPT_TYPE_C_U64 uint64_t #define mSCRIPT_TYPE_C_F64 double -#define mSCRIPT_TYPE_C_STR mScriptString* +#define mSCRIPT_TYPE_C_STR struct mScriptString* #define mSCRIPT_TYPE_C_CHARP const char* #define mSCRIPT_TYPE_C_PTR void* #define mSCRIPT_TYPE_C_TABLE Table* -#define mSCRIPT_TYPE_C_WRAPPER mScriptValue* +#define mSCRIPT_TYPE_C_WRAPPER struct mScriptValue* #define mSCRIPT_TYPE_C_S(STRUCT) struct STRUCT* #define mSCRIPT_TYPE_FIELD_S32 s32 diff --git a/src/script/types.c b/src/script/types.c index e8f1a73a2..b5fef71e1 100644 --- a/src/script/types.c +++ b/src/script/types.c @@ -598,11 +598,10 @@ void mScriptValueRef(struct mScriptValue* val) { } void mScriptValueDeref(struct mScriptValue* val) { - --val->refs; - if (val->refs > 0) { + if (val->refs > 1) { + --val->refs; return; - } else if (val->refs < 0) { - val->refs = mSCRIPT_VALUE_UNREF; + } else if (val->refs <= 0) { return; } if (val->type->free) {