Bug 469717 - Crash when using xf:delete followed by xf:send, r=peterv

This commit is contained in:
Sergey Reymerov 2010-04-18 10:35:53 +09:00
Родитель bcfd410303
Коммит f21f1e8e3e
1 изменённых файлов: 1 добавлений и 4 удалений

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

@ -111,6 +111,7 @@ txResultRecycler::recycle(txAExprResult* aResult)
}
case txAExprResult::NODESET:
{
static_cast<txNodeSet*>(aResult)->clear();
rv = mNodeSetResults.push(static_cast<txNodeSet*>(aResult));
if (NS_FAILED(rv)) {
delete aResult;
@ -185,7 +186,6 @@ txResultRecycler::getNodeSet(txNodeSet** aResult)
}
else {
*aResult = static_cast<txNodeSet*>(mNodeSetResults.pop());
(*aResult)->clear();
(*aResult)->mRecycler = this;
}
NS_ADDREF(*aResult);
@ -202,7 +202,6 @@ txResultRecycler::getNodeSet(txNodeSet* aNodeSet, txNodeSet** aResult)
}
else {
*aResult = static_cast<txNodeSet*>(mNodeSetResults.pop());
(*aResult)->clear();
(*aResult)->append(*aNodeSet);
(*aResult)->mRecycler = this;
}
@ -220,7 +219,6 @@ txResultRecycler::getNodeSet(const txXPathNode& aNode, txAExprResult** aResult)
}
else {
txNodeSet* nodes = static_cast<txNodeSet*>(mNodeSetResults.pop());
nodes->clear();
nodes->append(aNode);
nodes->mRecycler = this;
*aResult = nodes;
@ -239,7 +237,6 @@ txResultRecycler::getNodeSet(const txXPathNode& aNode, txNodeSet** aResult)
}
else {
*aResult = static_cast<txNodeSet*>(mNodeSetResults.pop());
(*aResult)->clear();
(*aResult)->append(aNode);
(*aResult)->mRecycler = this;
}