summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew John Hughes <gnu_andrew@member.fsf.org>2009-02-05 20:46:21 +0000
committerAndrew John Hughes <gnu_andrew@member.fsf.org>2009-02-05 20:46:21 +0000
commit20315190f553f67723d219c653885ef4bed18566 (patch)
tree3aa84ea6a57bc2bc660744946a103b4be68b5556
parentcdcb8a7a586f31d2b76d011ba5895f6a9ea2ae42 (diff)
downloadclasspath-20315190f553f67723d219c653885ef4bed18566.tar.gz
2009-02-05 Mark Wielaard <mark@klomp.org>
PR classpath/38912: * gnu/xml/stream/XMLParser.java: (getLocalName()): Respect stringInterning. (getName()): Likewise. (getPrefix()): Likewise.
-rw-r--r--ChangeLog8
-rw-r--r--gnu/xml/stream/XMLParser.java14
2 files changed, 20 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index e79d81124..179d98376 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2009-02-05 Mark Wielaard <mark@klomp.org>
+
+ PR classpath/38912:
+ * gnu/xml/stream/XMLParser.java:
+ (getLocalName()): Respect stringInterning.
+ (getName()): Likewise.
+ (getPrefix()): Likewise.
+
2009-02-04 Andrew John Hughes <ahughes@redhat.com>
* native/jni/native-lib/cpproc.c:
diff --git a/gnu/xml/stream/XMLParser.java b/gnu/xml/stream/XMLParser.java
index 27aaa734d..6072a9c73 100644
--- a/gnu/xml/stream/XMLParser.java
+++ b/gnu/xml/stream/XMLParser.java
@@ -725,7 +725,10 @@ public class XMLParser
case XMLStreamConstants.END_ELEMENT:
String qName = buf.toString();
int ci = qName.indexOf(':');
- return (ci == -1) ? qName : qName.substring(ci + 1);
+ String localName = (ci == -1) ? qName : qName.substring(ci + 1);
+ if (stringInterning)
+ localName = localName.intern();
+ return localName;
default:
return null;
}
@@ -745,9 +748,13 @@ public class XMLParser
String qName = buf.toString();
int ci = qName.indexOf(':');
String localName = (ci == -1) ? qName : qName.substring(ci + 1);
+ if (stringInterning)
+ localName = localName.intern();
String prefix = (ci == -1) ?
(namespaceAware ? XMLConstants.DEFAULT_NS_PREFIX : null) :
qName.substring(0, ci);
+ if (stringInterning && prefix != null)
+ prefix = prefix.intern();
String namespaceURI = getNamespaceURI(prefix);
return new QName(namespaceURI, localName, prefix);
default:
@@ -831,9 +838,12 @@ public class XMLParser
case XMLStreamConstants.END_ELEMENT:
String qName = buf.toString();
int ci = qName.indexOf(':');
- return (ci == -1) ?
+ String prefix = (ci == -1) ?
(namespaceAware ? XMLConstants.DEFAULT_NS_PREFIX : null) :
qName.substring(0, ci);
+ if (stringInterning && prefix != null)
+ prefix = prefix.intern();
+ return prefix;
default:
return null;
}