зеркало из https://github.com/mozilla/gecko-dev.git
bug 104042, fix leaks in main (ifstream) and UnionExpr::evaluate (adding a null check and some iteratorlove, too), r=sicking@bigfoot.com,peterv, sr=jst
This commit is contained in:
Родитель
40df4cb131
Коммит
67f7a12ec9
|
@ -138,6 +138,8 @@ int main(int argc, char** argv) {
|
|||
xsltProcessor.process(*xmlInput, *xmlFilename, xsltInput, *xsltFilename, *resultOutput);
|
||||
}
|
||||
resultFileStream.close();
|
||||
if (xmlInput != &cin)
|
||||
delete xmlInput;
|
||||
txShutdown();
|
||||
return 0;
|
||||
} //-- main
|
||||
|
|
|
@ -76,17 +76,18 @@ ExprResult* UnionExpr::evaluate(Node* context, ContextState* cs) {
|
|||
|
||||
NodeSet* nodes = new NodeSet();
|
||||
|
||||
ListIterator* iter = expressions.iterator();
|
||||
txListIterator iter(&expressions);
|
||||
|
||||
while (iter->hasNext()) {
|
||||
Expr* expr = (Expr*)iter->next();
|
||||
while (iter.hasNext()) {
|
||||
Expr* expr = (Expr*)iter.next();
|
||||
ExprResult* exprResult = expr->evaluate(context, cs);
|
||||
if (exprResult->getResultType() == ExprResult::NODESET) {
|
||||
if (exprResult &&
|
||||
exprResult->getResultType() == ExprResult::NODESET) {
|
||||
((NodeSet*)exprResult)->copyInto(*nodes);
|
||||
}
|
||||
delete exprResult;
|
||||
}
|
||||
|
||||
delete iter;
|
||||
return nodes;
|
||||
} //-- evaluate
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче