summaryrefslogtreecommitdiffstats
path: root/WebCore/xml/XPathParser.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'WebCore/xml/XPathParser.cpp')
-rw-r--r--WebCore/xml/XPathParser.cpp11
1 files changed, 7 insertions, 4 deletions
diff --git a/WebCore/xml/XPathParser.cpp b/WebCore/xml/XPathParser.cpp
index 77c3011..5501df1 100644
--- a/WebCore/xml/XPathParser.cpp
+++ b/WebCore/xml/XPathParser.cpp
@@ -36,6 +36,7 @@
#include "XPathException.h"
#include "XPathNSResolver.h"
#include "XPathStep.h"
+#include <wtf/StdLibExtras.h>
int xpathyyparse(void*);
@@ -53,6 +54,8 @@ Parser* Parser::currentParser = 0;
enum XMLCat { NameStart, NameCont, NotPartOfName };
+typedef HashMap<String, Step::Axis> AxisNamesMap;
+
static XMLCat charCat(UChar aChar)
{
//### might need to add some special cases from the XML spec.
@@ -70,7 +73,7 @@ static XMLCat charCat(UChar aChar)
return NotPartOfName;
}
-static void setUpAxisNamesMap(HashMap<String, Step::Axis>& axisNames)
+static void setUpAxisNamesMap(AxisNamesMap& axisNames)
{
struct AxisName {
const char* name;
@@ -97,12 +100,12 @@ static void setUpAxisNamesMap(HashMap<String, Step::Axis>& axisNames)
static bool isAxisName(const String& name, Step::Axis& type)
{
- static HashMap<String, Step::Axis> axisNames;
+ DEFINE_STATIC_LOCAL(AxisNamesMap, axisNames, ());
if (axisNames.isEmpty())
setUpAxisNamesMap(axisNames);
- HashMap<String, Step::Axis>::iterator it = axisNames.find(name);
+ AxisNamesMap::iterator it = axisNames.find(name);
if (it == axisNames.end())
return false;
type = it->second;
@@ -111,7 +114,7 @@ static bool isAxisName(const String& name, Step::Axis& type)
static bool isNodeTypeName(const String& name)
{
- static HashSet<String> nodeTypeNames;
+ DEFINE_STATIC_LOCAL(HashSet<String>, nodeTypeNames, ());
if (nodeTypeNames.isEmpty()) {
nodeTypeNames.add("comment");
nodeTypeNames.add("text");