diff options
author | Lorry Tar Creator <lorry-tar-importer@lorry> | 2017-06-27 06:07:23 +0000 |
---|---|---|
committer | Lorry Tar Creator <lorry-tar-importer@lorry> | 2017-06-27 06:07:23 +0000 |
commit | 1bf1084f2b10c3b47fd1a588d85d21ed0eb41d0c (patch) | |
tree | 46dcd36c86e7fbc6e5df36deb463b33e9967a6f7 /Source/WebCore/xml/XPathEvaluator.cpp | |
parent | 32761a6cee1d0dee366b885b7b9c777e67885688 (diff) | |
download | WebKitGtk-tarball-master.tar.gz |
webkitgtk-2.16.5HEADwebkitgtk-2.16.5master
Diffstat (limited to 'Source/WebCore/xml/XPathEvaluator.cpp')
-rw-r--r-- | Source/WebCore/xml/XPathEvaluator.cpp | 34 |
1 files changed, 12 insertions, 22 deletions
diff --git a/Source/WebCore/xml/XPathEvaluator.cpp b/Source/WebCore/xml/XPathEvaluator.cpp index b405ff1c6..3aa141b27 100644 --- a/Source/WebCore/xml/XPathEvaluator.cpp +++ b/Source/WebCore/xml/XPathEvaluator.cpp @@ -1,6 +1,6 @@ /* * Copyright 2005 Frerich Raabe <raabe@kde.org> - * Copyright (C) 2006 Apple Computer, Inc. + * Copyright (C) 2006 Apple Inc. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -37,36 +37,26 @@ namespace WebCore { using namespace XPath; -PassRefPtr<XPathExpression> XPathEvaluator::createExpression(const String& expression, - XPathNSResolver* resolver, - ExceptionCode& ec) +ExceptionOr<Ref<XPathExpression>> XPathEvaluator::createExpression(const String& expression, RefPtr<XPathNSResolver>&& resolver) { - return XPathExpression::createExpression(expression, resolver, ec); + return XPathExpression::createExpression(expression, WTFMove(resolver)); } -PassRefPtr<XPathNSResolver> XPathEvaluator::createNSResolver(Node* nodeResolver) +Ref<XPathNSResolver> XPathEvaluator::createNSResolver(Node* nodeResolver) { return NativeXPathNSResolver::create(nodeResolver); } -PassRefPtr<XPathResult> XPathEvaluator::evaluate(const String& expression, - Node* contextNode, - XPathNSResolver* resolver, - unsigned short type, - XPathResult* result, - ExceptionCode& ec) +ExceptionOr<Ref<XPathResult>> XPathEvaluator::evaluate(const String& expression, Node* contextNode, RefPtr<XPathNSResolver>&& resolver, unsigned short type, XPathResult* result) { - if (!isValidContextNode(contextNode)) { - ec = NOT_SUPPORTED_ERR; - return 0; - } + if (!isValidContextNode(contextNode)) + return Exception { NOT_SUPPORTED_ERR }; - ec = 0; - RefPtr<XPathExpression> expr = createExpression(expression, resolver, ec); - if (ec) - return 0; - - return expr->evaluate(contextNode, type, result, ec); + auto createResult = createExpression(expression, WTFMove(resolver)); + if (createResult.hasException()) + return createResult.releaseException(); + + return createResult.releaseReturnValue()->evaluate(contextNode, type, result); } } |