diff options
author | 2013-05-15 10:46:51 -0700 | |
---|---|---|
committer | 2013-05-15 10:46:51 -0700 | |
commit | 1efcbd67cd445d8c9218ed50d5ef8d5b9e3a273a (patch) | |
tree | 12d1a0782bd0c7ea90cfaf172da830c0d7836b7e /java/src/com/android/inputmethod/research/FixedLogBuffer.java | |
parent | bec53aa09f89b4aecb276e98e8c1efe0d6857fd0 (diff) | |
parent | 8acab80a8680956038b45912d3e00a1d6a5e3cdb (diff) | |
download | latinime-1efcbd67cd445d8c9218ed50d5ef8d5b9e3a273a.tar.gz latinime-1efcbd67cd445d8c9218ed50d5ef8d5b9e3a273a.tar.xz latinime-1efcbd67cd445d8c9218ed50d5ef8d5b9e3a273a.zip |
am 8acab80a: am 56f35a10: Merge "Fix bug in counting words between samples"
* commit '8acab80a8680956038b45912d3e00a1d6a5e3cdb':
Fix bug in counting words between samples
Diffstat (limited to 'java/src/com/android/inputmethod/research/FixedLogBuffer.java')
-rw-r--r-- | java/src/com/android/inputmethod/research/FixedLogBuffer.java | 26 |
1 files changed, 17 insertions, 9 deletions
diff --git a/java/src/com/android/inputmethod/research/FixedLogBuffer.java b/java/src/com/android/inputmethod/research/FixedLogBuffer.java index 78dc59562..641bf7eae 100644 --- a/java/src/com/android/inputmethod/research/FixedLogBuffer.java +++ b/java/src/com/android/inputmethod/research/FixedLogBuffer.java @@ -51,10 +51,6 @@ public class FixedLogBuffer extends LogBuffer { mNumActualWords = 0; } - protected int getNumActualWords() { - return mNumActualWords; - } - /** * Adds a new LogUnit to the front of the LIFO queue, evicting existing LogUnit's * (oldest first) if word capacity is reached. @@ -119,12 +115,24 @@ public class FixedLogBuffer extends LogBuffer { return logUnit; } - protected void shiftOutWords(final int numWords) { - final int targetNumWords = mNumActualWords - numWords; - final LinkedList<LogUnit> logUnits = getLogUnits(); - while (mNumActualWords > targetNumWords && !logUnits.isEmpty()) { - shiftOut(); + /** + * Remove LogUnits from the front of the LogBuffer until {@code numWords} have been removed. + * + * If there are less than {@code numWords} word-containing {@link LogUnit}s, shifts out + * all {@code LogUnit}s in the buffer. + * + * @param numWords the number of word-containing {@link LogUnit}s to shift out + * @return the number of actual {@code LogUnit}s shifted out + */ + protected int shiftOutWords(final int numWords) { + int numWordContainingLogUnitsShiftedOut = 0; + for (LogUnit logUnit = shiftOut(); logUnit != null + && numWordContainingLogUnitsShiftedOut < numWords; logUnit = shiftOut()) { + if (logUnit.hasWord()) { + numWordContainingLogUnitsShiftedOut++; + } } + return numWordContainingLogUnitsShiftedOut; } public void shiftOutAll() { |