зеркало из https://github.com/mozilla/gecko-dev.git
Leakage fixes.
This commit is contained in:
Родитель
c251d3600f
Коммит
56427a5ece
|
@ -92,7 +92,7 @@ public:
|
|||
#endif
|
||||
{ }
|
||||
|
||||
BytecodeContainer::~BytecodeContainer() { }
|
||||
BytecodeContainer::~BytecodeContainer() { String t; mSource = t; mSourceLocation = t; }
|
||||
|
||||
|
||||
void mark();
|
||||
|
|
|
@ -146,7 +146,7 @@ static int readEvalPrint(FILE *in)
|
|||
js2val rval = metadata->ExecuteStmtList(RunPhase, parsedStatements);
|
||||
if (!JS2VAL_IS_VOID(rval))
|
||||
stdOut << *metadata->toString(rval) << '\n';
|
||||
metadata->restoreCompilationUnit(oldData);
|
||||
metadata->restoreCompilationUnit(oldData);
|
||||
}
|
||||
}
|
||||
clear(buffer);
|
||||
|
@ -414,7 +414,7 @@ int main(int argc, char **argv)
|
|||
result = readEvalPrint(stdin);
|
||||
delete metadata;
|
||||
world->identifiers.clear();
|
||||
delete world;
|
||||
delete world;
|
||||
return result;
|
||||
}
|
||||
catch (Exception &e) {
|
||||
|
|
|
@ -420,8 +420,8 @@ namespace MetaData {
|
|||
INIT_STRINGATOM(Function),
|
||||
INIT_STRINGATOM(Object),
|
||||
INIT_STRINGATOM(object),
|
||||
Empty_StringAtom(allocStringPtr(&world.identifiers[""])),
|
||||
Dollar_StringAtom(allocStringPtr(&world.identifiers["$"])),
|
||||
Empty_StringAtom(allocStringPtr("")),
|
||||
Dollar_StringAtom(allocStringPtr("$")),
|
||||
INIT_STRINGATOM(prototype),
|
||||
INIT_STRINGATOM(length),
|
||||
INIT_STRINGATOM(toString),
|
||||
|
@ -441,6 +441,12 @@ namespace MetaData {
|
|||
execStackLimit = execStack + INITIAL_EXEC_STACK;
|
||||
activationStackTop = activationStack = new ActivationFrame[MAX_ACTIVATION_STACK];
|
||||
}
|
||||
|
||||
JS2Engine::~JS2Engine()
|
||||
{
|
||||
delete [] execStack;
|
||||
delete [] activationStack;
|
||||
}
|
||||
|
||||
#ifdef DEBUG
|
||||
|
||||
|
|
|
@ -178,7 +178,8 @@ void dumpBytecode(BytecodeContainer *bCon);
|
|||
class JS2Engine {
|
||||
public:
|
||||
|
||||
JS2Engine(World &world);
|
||||
JS2Engine(World &world);
|
||||
~JS2Engine();
|
||||
|
||||
js2val interpret(Phase execPhase, BytecodeContainer *targetbCon, Environment *env);
|
||||
js2val interpreterLoop();
|
||||
|
|
|
@ -153,10 +153,12 @@ namespace MetaData {
|
|||
}
|
||||
catch (Exception &x) {
|
||||
referenceArena->clear();
|
||||
delete referenceArena;
|
||||
referenceArena = oldArena;
|
||||
throw x;
|
||||
}
|
||||
referenceArena->clear();
|
||||
referenceArena->clear();
|
||||
delete referenceArena;
|
||||
referenceArena = oldArena;
|
||||
|
||||
bCon->emitOp(eReturnVoid, lastPos);
|
||||
|
|
|
@ -3446,7 +3446,9 @@ XXX see EvalAttributeExpression, where identifiers are being handled for now...
|
|||
bConList.clear();
|
||||
targetList.clear();
|
||||
JS2Object::clear(this); // don't blow off the contents of 'this' as the destructors for
|
||||
// embedded objects will get messed up (as they run on exit).
|
||||
// embedded objects will get messed up (as they run on exit).
|
||||
delete engine;
|
||||
if (bCon) delete bCon;
|
||||
}
|
||||
|
||||
JS2Class *JS2Metadata::objectType(JS2Object *obj)
|
||||
|
@ -4678,9 +4680,10 @@ XXX see EvalAttributeExpression, where identifiers are being handled for now...
|
|||
delete obj;
|
||||
}
|
||||
else
|
||||
if (p->isString()) {
|
||||
if (p->isString()) {
|
||||
String t;
|
||||
String *s = (String *)(p + 1);
|
||||
s->erase();
|
||||
*s = t;
|
||||
}
|
||||
released += returnToPond(p);
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче