fix: replace broken WREN_PIN macro with proper wrenPushRoot/wrenPopRoot GC root stack

This commit is contained in:
Bob Nystrom
2015-01-21 15:56:06 +00:00
parent a4baa42d6f
commit 6223bb2342
5 changed files with 62 additions and 90 deletions
+4 -4
View File
@@ -1111,12 +1111,12 @@ static ObjClass* defineSingleClass(WrenVM* vm, const char* name)
{
size_t length = strlen(name);
ObjString* nameString = AS_STRING(wrenNewString(vm, name, length));
WREN_PIN(vm, nameString);
wrenPushRoot(vm, (Obj*)nameString);
ObjClass* classObj = wrenNewSingleClass(vm, 0, nameString);
wrenDefineGlobal(vm, name, length, OBJ_VAL(classObj));
WREN_UNPIN(vm);
wrenPopRoot(vm);
return classObj;
}
@@ -1124,12 +1124,12 @@ static ObjClass* defineClass(WrenVM* vm, const char* name)
{
size_t length = strlen(name);
ObjString* nameString = AS_STRING(wrenNewString(vm, name, length));
WREN_PIN(vm, nameString);
wrenPushRoot(vm, (Obj*)nameString);
ObjClass* classObj = wrenNewClass(vm, vm->objectClass, 0, nameString);
wrenDefineGlobal(vm, name, length, OBJ_VAL(classObj));
WREN_UNPIN(vm);
wrenPopRoot(vm);
return classObj;
}