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 /gnu/xml/stream/XMLParser.java | |
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.
Diffstat (limited to 'gnu/xml/stream/XMLParser.java')
-rw-r--r-- | gnu/xml/stream/XMLParser.java | 14 |
1 files changed, 12 insertions, 2 deletions
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; } |