]> gitweb.fperrin.net Git - Dictionary.git/commitdiff
Avoid creating 100s of empty CachingLists.
authorReimar Döffinger <Reimar.Doeffinger@gmx.de>
Sat, 29 Oct 2016 23:23:04 +0000 (01:23 +0200)
committerReimar Döffinger <Reimar.Doeffinger@gmx.de>
Sat, 29 Oct 2016 23:23:04 +0000 (01:23 +0200)
src/com/hughes/android/dictionary/engine/Index.java

index a664ce5f1d506d63798eaff82d7681790c251459..e52ac62f74aaaf65a722b2c2f930ff02fbc2096b 100644 (file)
@@ -220,20 +220,24 @@ public final class Index implements RAFSerializable<Index> {
             normalizedToken = hasNormalizedForm ? raf.readUTF() : token;
             if (index.dict.dictFileVersion >= 7) {
                 int size = StringUtil.readVarInt(raf);
-                final int[] htmlEntryIndices = new int[size];
-                for (int i = 0; i < size; ++i) {
-                    htmlEntryIndices[i] = StringUtil.readVarInt(raf);
-                }
-                this.htmlEntries = CachingList.create(new AbstractList<HtmlEntry>() {
-                    @Override
-                    public HtmlEntry get(int i) {
-                        return index.dict.htmlEntries.get(htmlEntryIndices[i]);
-                    }
-                    @Override
-                    public int size() {
-                        return htmlEntryIndices.length;
+                if (size == 0) {
+                    this.htmlEntries = Collections.emptyList();
+                } else {
+                    final int[] htmlEntryIndices = new int[size];
+                    for (int i = 0; i < size; ++i) {
+                        htmlEntryIndices[i] = StringUtil.readVarInt(raf);
                     }
-                    }, 1);
+                    this.htmlEntries = CachingList.create(new AbstractList<HtmlEntry>() {
+                        @Override
+                        public HtmlEntry get(int i) {
+                            return index.dict.htmlEntries.get(htmlEntryIndices[i]);
+                        }
+                        @Override
+                        public int size() {
+                            return htmlEntryIndices.length;
+                        }
+                        }, 1);
+                }
             } else if (index.dict.dictFileVersion >= 6) {
                 this.htmlEntries = CachingList.create(
                         RAFList.create((RandomAccessFile)raf, index.dict.htmlEntryIndexSerializer,