From c6704dbe512c8b7ee88c3fca4e84fae021ff6c83 Mon Sep 17 00:00:00 2001 From: Keisuke Kuroyanagi Date: Mon, 21 Apr 2014 15:21:55 -0700 Subject: [PATCH] Add BinaryDictionary.flushWithGCIfHasUpdated(). Bug: 14166482 Bug: 14161647 Change-Id: I98b0a8b86897b1486491a3aea91729bc9e4cc03c --- .../com/android/inputmethod/latin/BinaryDictionary.java | 9 +++++++++ .../inputmethod/latin/ExpandableBinaryDictionary.java | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/java/src/com/android/inputmethod/latin/BinaryDictionary.java b/java/src/com/android/inputmethod/latin/BinaryDictionary.java index 5e36d9703..621eb2dfa 100644 --- a/java/src/com/android/inputmethod/latin/BinaryDictionary.java +++ b/java/src/com/android/inputmethod/latin/BinaryDictionary.java @@ -460,6 +460,7 @@ public final class BinaryDictionary extends Dictionary { dictFile.length(), mIsUpdatable); } + // Flush to dict file if the dictionary has been updated. public void flush() { if (!isValidDictionary()) return; if (mHasUpdated) { @@ -468,6 +469,14 @@ public final class BinaryDictionary extends Dictionary { } } + // Run GC and flush to dict file if the dictionary has been updated. + public void flushWithGCIfHasUpdated() { + if (mHasUpdated) { + flushWithGC(); + } + } + + // Run GC and flush to dict file. public void flushWithGC() { if (!isValidDictionary()) return; flushWithGCNative(mNativeDict, mDictFilePath); diff --git a/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java b/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java index 64e9d2b51..a6a735414 100644 --- a/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java +++ b/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java @@ -515,7 +515,8 @@ abstract public class ExpandableBinaryDictionary extends Dictionary { createBinaryDictionaryLocked(); openBinaryDictionaryLocked(); loadInitialContentsLocked(); - mBinaryDictionary.flushWithGC(); + // Run GC and flush to file when initial contents have been loaded. + mBinaryDictionary.flushWithGCIfHasUpdated(); } private void flushDictionaryLocked() {