diff options
-rw-r--r-- | dx/src/com/android/jack/dx/dex/file/StringIdsSection.java | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/dx/src/com/android/jack/dx/dex/file/StringIdsSection.java b/dx/src/com/android/jack/dx/dex/file/StringIdsSection.java index b9d6c0d..53e5241 100644 --- a/dx/src/com/android/jack/dx/dex/file/StringIdsSection.java +++ b/dx/src/com/android/jack/dx/dex/file/StringIdsSection.java @@ -108,7 +108,21 @@ public final class StringIdsSection extends UniformItemSection { * @return {@code non-null;} the interned string */ public StringIdItem intern(CstString string) { - return intern(new StringIdItem(string)); + if (string == null) { + throw new NullPointerException("string == null"); + } + + throwIfPrepared(); + + StringIdItem already = strings.get(string); + + if (already != null) { + return already; + } + + StringIdItem result = new StringIdItem(string); + strings.put(string, result); + return result; } /** |