summaryrefslogtreecommitdiffstats
path: root/xml/src
diff options
context:
space:
mode:
Diffstat (limited to 'xml/src')
-rw-r--r--xml/src/main/java/org/kxml2/io/KXmlParser.java11
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();