fix GC safety bug in resolveObjectArrayClass

The call to getClassRuntimeData may trigger a GC, so we must mark the
local variables to be visited.
This commit is contained in:
Joel Dice 2011-11-18 08:38:19 -07:00
parent 3e5a7d9a41
commit e4c1f923b5

View File

@ -3810,6 +3810,9 @@ initClass(Thread* t, object c)
object
resolveObjectArrayClass(Thread* t, object loader, object elementClass)
{
PROTECT(t, loader);
PROTECT(t, elementClass);
{ object arrayClass = classRuntimeDataArrayClass
(t, getClassRuntimeData(t, elementClass));
if (arrayClass) {
@ -3817,9 +3820,6 @@ resolveObjectArrayClass(Thread* t, object loader, object elementClass)
}
}
PROTECT(t, loader);
PROTECT(t, elementClass);
object elementSpec = className(t, elementClass);
PROTECT(t, elementSpec);