diff options
author | Andrew John Hughes <gnu_andrew@member.fsf.org> | 2009-02-05 20:46:21 +0000 |
---|---|---|
committer | Andrew John Hughes <gnu_andrew@member.fsf.org> | 2009-02-05 20:46:21 +0000 |
commit | 20315190f553f67723d219c653885ef4bed18566 (patch) | |
tree | 3aa84ea6a57bc2bc660744946a103b4be68b5556 | |
parent | cdcb8a7a586f31d2b76d011ba5895f6a9ea2ae42 (diff) | |
download | classpath-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-- | ChangeLog | 8 | ||||
-rw-r--r-- | gnu/xml/stream/XMLParser.java | 14 |
2 files changed, 20 insertions, 2 deletions
@@ -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; } |