@@ -1205,6 +1205,7 @@ bool getVariant(HSQUIRRELVM vm, SQInteger idx, ScriptVariant_t& variant)
12051205 {
12061206 case OT_NULL:
12071207 {
1208+ variant.Free ();
12081209 variant.m_flags = 0 ;
12091210 // TODO: Should this be (HSCRIPT)nullptr
12101211 variant.m_type = FIELD_VOID;
@@ -1217,6 +1218,7 @@ bool getVariant(HSQUIRRELVM vm, SQInteger idx, ScriptVariant_t& variant)
12171218 {
12181219 return false ;
12191220 }
1221+ variant.Free ();
12201222 variant = (int )val;
12211223 return true ;
12221224 }
@@ -1227,6 +1229,7 @@ bool getVariant(HSQUIRRELVM vm, SQInteger idx, ScriptVariant_t& variant)
12271229 {
12281230 return false ;
12291231 }
1232+ variant.Free ();
12301233 variant = (float )val;
12311234 return true ;
12321235 }
@@ -1237,6 +1240,7 @@ bool getVariant(HSQUIRRELVM vm, SQInteger idx, ScriptVariant_t& variant)
12371240 {
12381241 return false ;
12391242 }
1243+ variant.Free ();
12401244 variant = val ? true : false ;
12411245 return true ;
12421246 }
@@ -1248,6 +1252,7 @@ bool getVariant(HSQUIRRELVM vm, SQInteger idx, ScriptVariant_t& variant)
12481252 {
12491253 return false ;
12501254 }
1255+ variant.Free ();
12511256 char * buffer = (char *)malloc (size + 1 );
12521257 V_memcpy (buffer, val, size);
12531258 buffer[size] = 0 ;
@@ -1263,6 +1268,7 @@ bool getVariant(HSQUIRRELVM vm, SQInteger idx, ScriptVariant_t& variant)
12631268 tag == TYPETAG_VECTOR &&
12641269 SQ_SUCCEEDED (sq_getinstanceup (vm, idx, (SQUserPointer*)&v, TYPETAG_VECTOR)))
12651270 {
1271+ variant.Free ();
12661272 variant = (Vector*)malloc (sizeof (Vector));
12671273 variant.EmplaceAllocedVector (*v);
12681274 variant.m_flags |= SV_FREE;
@@ -1272,6 +1278,7 @@ bool getVariant(HSQUIRRELVM vm, SQInteger idx, ScriptVariant_t& variant)
12721278 }
12731279 default :
12741280 {
1281+ variant.Free ();
12751282 HSQOBJECT* obj = new HSQOBJECT;
12761283 sq_resetobject (obj);
12771284 sq_getstackobj (vm, idx, obj);
0 commit comments