]> gitweb.fperrin.net Git - Dictionary.git/commitdiff
Do not needlessly use Java serialization.
authorReimar Döffinger <Reimar.Doeffinger@gmx.de>
Sat, 12 Dec 2015 16:17:21 +0000 (17:17 +0100)
committerReimar Döffinger <Reimar.Doeffinger@gmx.de>
Sat, 12 Dec 2015 17:26:15 +0000 (18:26 +0100)
src/com/hughes/android/dictionary/engine/Index.java

index 990521630aa24862314423aa06bea4a85cd8b885..139cdd8da908af8a42cb42fa4a67afedb9e6dd1d 100644 (file)
@@ -138,7 +138,13 @@ public final class Index implements RAFSerializable<Index> {
         sortedIndexEntries = CachingList.create(
                 RAFList.create(raf, indexEntrySerializer, raf.getFilePointer(), dict.dictFileVersion,
                 dict.dictFileVersion >= 7 ? 16 : 1, dict.dictFileVersion >= 7), CACHE_SIZE);
-        if (dict.dictFileVersion >= 4) {
+        if (dict.dictFileVersion >= 7) {
+            int count = StringUtil.readVarInt(raf);
+            stoplist = new HashSet<String>(count);
+            for (int i = 0; i < count; ++i) {
+                stoplist.add(raf.readUTF());
+            }
+       } else if (dict.dictFileVersion >= 4) {
             stoplist = new SerializableSerializer<Set<String>>().read(raf);
         } else {
             stoplist = Collections.emptySet();
@@ -160,7 +166,10 @@ public final class Index implements RAFSerializable<Index> {
             raf.writeInt(mainTokenCount);
         }
         RAFList.write(raf, sortedIndexEntries, indexEntrySerializer, 16, true);
-        new SerializableSerializer<Set<String>>().write(raf, stoplist);
+        StringUtil.writeVarInt(raf, stoplist.size());
+        for (String i : stoplist) {
+            raf.writeUTF(i);
+        }
         UniformRAFList.write(raf, rows, new RowBase.Serializer(this), 3 /* bytes per entry */);
     }