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:
axel%pike.org 2001-10-23 07:34:27 +00:00
Родитель 40df4cb131
Коммит 67f7a12ec9
2 изменённых файлов: 8 добавлений и 5 удалений

Просмотреть файл

@ -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