Added ReferenceArena.

git-svn-id: svn://10.0.0.236/trunk@141002 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
rogerl%netscape.com 2003-04-10 20:54:03 +00:00
parent f558686eaa
commit 7290a49404

View File

@ -80,7 +80,18 @@ namespace MetaData {
DEFINE_ROOTKEEPER(rk, fnExpr->obj);
JS2Class *exprType;
meta->ValidateExpression(&meta->cxt, meta->env, fnExpr);
meta->SetupExprNode(meta->env, RunPhase, fnExpr, &exprType);
Arena *oldArena = meta->referenceArena;
meta->referenceArena = new Arena;
try {
meta->SetupExprNode(meta->env, RunPhase, fnExpr, &exprType);
}
catch (Exception &x) {
meta->referenceArena->clear();
meta->referenceArena = oldArena;
throw x;
}
meta->referenceArena->clear();
meta->referenceArena = oldArena;
ASSERT(fnExpr);
return OBJECT_TO_JS2VAL(fnExpr->obj);
}