diff options
Diffstat (limited to 'xml/src')
-rw-r--r-- | xml/src/main/java/org/kxml2/io/KXmlParser.java | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/xml/src/main/java/org/kxml2/io/KXmlParser.java b/xml/src/main/java/org/kxml2/io/KXmlParser.java index 9ca555b..9c20e0d 100644 --- a/xml/src/main/java/org/kxml2/io/KXmlParser.java +++ b/xml/src/main/java/org/kxml2/io/KXmlParser.java @@ -28,6 +28,7 @@ import java.io.InputStreamReader; import java.io.Reader; import java.util.HashMap; import java.util.Map; +import libcore.internal.StringPool; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserException; @@ -106,6 +107,8 @@ public class KXmlParser implements XmlPullParser { private boolean unresolved; private boolean token; + public final StringPool stringPool = new StringPool(); + /** * Retains namespace attributes like {@code xmlns="http://foo"} or {@code xmlns:foo="http:foo"} * in pulled elements. Most applications will only be interested in the effective namespaces of @@ -403,7 +406,7 @@ public class KXmlParser implements XmlPullParser { if (!returnText) { return null; } else if (result == null) { - return new String(buffer, start, end - start); + return stringPool.get(buffer, start, end - start); } else { result.append(buffer, start, end - start); return result.toString(); @@ -495,7 +498,7 @@ public class KXmlParser implements XmlPullParser { if (assignText) { if (result == null) { - text = new String(buffer, start, position - start - 1); // omit the '>' + text = stringPool.get(buffer, start, position - start - 1); // omit the '>' } else { result.append(buffer, start, position - start - 1); // omit the '>' text = result.toString(); @@ -882,7 +885,7 @@ public class KXmlParser implements XmlPullParser { } if (result == null) { - return new String(buffer, start, position - start); + return stringPool.get(buffer, start, position - start); } else { result.append(buffer, start, position - start); return result.toString(); @@ -1016,7 +1019,7 @@ public class KXmlParser implements XmlPullParser { // we encountered a non-name character. done! if (result == null) { - return new String(buffer, start, position - start); + return stringPool.get(buffer, start, position - start); } else { result.append(buffer, start, position - start); return result.toString(); |