Fix trashing of inner trees. Keep track of trees that call to a tree and flush them as well since they directly embed the code address. Since flushing an inner tree might invalidate the tree we are currently compiling, trees are now trashed in the destructor of TraceRecorder.

This commit is contained in:
Andreas Gal
2008-08-27 17:25:56 -07:00
parent ccfe2e199c
commit cbc678d679
3 changed files with 27 additions and 11 deletions

View File

@@ -424,6 +424,7 @@ js_CallTree(InterpState* state, Fragment* f)
{
union { NIns *code; GuardRecord* (FASTCALL *func)(InterpState*, Fragment*); } u;
u.code = f->code();
JS_ASSERT(u.code);
return u.func(state, NULL);
}