-
weinig authored
Reviewed by Darin. http://bugs.webkit.org/show_bug.cgi?id=13004 Repeatedly calling XPathExpression.evaluate() causes crashes or memory leaks * fast/xpath/evaluate-twice-expected.txt: Added. * fast/xpath/evaluate-twice.html: Added. WebCore: Reviewed by Darin. http://bugs.webkit.org/show_bug.cgi?id=13004 Repeatedly calling XPathExpression.evaluate() causes crashes or memory leaks Removed XPath::Expression::optimize() and related methods, since they were buggy and almost useless. Merged doEvaluate() into evaluate(), since this was all evaluate() was doing after the above changes. Test: fast/xpath/evaluate-twice.html * xml/XPathExpression.cpp: (WebCore::XPathExpression::evaluate): * xml/XPathExpressionNode.cpp: (WebCore::XPath::Expression::Expression): (WebCore::XPath::Expression::~Expression): * xml/XPathExpressionNode.h: * xml/XPathFunctions.cpp: (WebCore::XPath::FunLast::evaluate): (WebCore::XPath::FunPosition::evaluate): (WebCore::XPath::FunId::evaluate): (WebCore::XPath::FunLocalName::evaluate): (WebCore::XPath::FunNamespaceURI::evaluate): (WebCore::XPath::FunName::evaluate): (WebCore::XPath::FunCount::evaluate): (WebCore::XPath::FunString::evaluate): (WebCore::XPath::FunConcat::evaluate): (WebCore::XPath::FunStartsWith::evaluate): (WebCore::XPath::FunContains::evaluate): (WebCore::XPath::FunSubstringBefore::evaluate): (WebCore::XPath::FunSubstringAfter::evaluate): (WebCore::XPath::FunSubstring::evaluate): (WebCore::XPath::FunStringLength::evaluate): (WebCore::XPath::FunNormalizeSpace::evaluate): (WebCore::XPath::FunTranslate::evaluate): (WebCore::XPath::FunBoolean::evaluate): (WebCore::XPath::FunNot::evaluate): (WebCore::XPath::FunTrue::evaluate): (WebCore::XPath::FunLang::evaluate): (WebCore::XPath::FunFalse::evaluate): (WebCore::XPath::FunNumber::evaluate): (WebCore::XPath::FunSum::evaluate): (WebCore::XPath::FunFloor::evaluate): (WebCore::XPath::FunCeiling::evaluate): (WebCore::XPath::FunRound::evaluate): * xml/XPathPath.cpp: (WebCore::XPath::Filter::evaluate): (WebCore::XPath::LocationPath::evaluate): (WebCore::XPath::Path::evaluate): * xml/XPathPath.h: * xml/XPathPredicate.cpp: (WebCore::XPath::Number::evaluate): (WebCore::XPath::StringExpression::evaluate): (WebCore::XPath::Negative::evaluate): (WebCore::XPath::NumericOp::evaluate): (WebCore::XPath::EqTestOp::evaluate): (WebCore::XPath::LogicalOp::evaluate): (WebCore::XPath::Union::evaluate): * xml/XPathPredicate.h: * xml/XPathStep.cpp: * xml/XPathStep.h: * xml/XPathVariableReference.cpp: (WebCore::XPath::VariableReference::evaluate): * xml/XPathVariableReference.h: git-svn-id: http://svn.webkit.org/repository/webkit/trunk@20051 268f45cc-cd09-0410-ab3c-d52691b4dbfc
51128873