bug 488414 - js_GenerateShape just schedules, not run, the GC. r=brendan,gal

This commit is contained in:
Igor Bukanov
2009-04-20 12:10:29 +02:00
parent 102a5e3a47
commit c0c65e7d35
11 changed files with 161 additions and 125 deletions

View File

@@ -5817,17 +5817,13 @@ js_TraceObject(JSTracer *trc, JSObject *obj)
if (IS_GC_MARKING_TRACER(trc)) {
uint32 shape, oldshape;
shape = ++cx->runtime->shapeGen;
JS_ASSERT(shape != 0);
shape = js_RegenerateShapeForGC(cx);
if (!(sprop->flags & SPROP_MARK)) {
oldshape = sprop->shape;
sprop->shape = shape;
sprop->flags |= SPROP_FLAG_SHAPE_REGEN;
if (scope->shape != oldshape) {
shape = ++cx->runtime->shapeGen;
JS_ASSERT(shape != 0);
}
if (scope->shape != oldshape)
shape = js_RegenerateShapeForGC(cx);
}
scope->shape = shape;