aboutsummaryrefslogtreecommitdiffstats
path: root/java/src/com/android/inputmethod/research/FixedLogBuffer.java
diff options
context:
space:
mode:
authorKurt Partridge <kep@google.com>2013-04-18 04:23:28 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2013-04-18 04:23:29 +0000
commit56f35a10cde1beeea51d99427992d832fa2de2bb (patch)
treed95bf0b498a13b8b62f621c5897ef187b5f08def /java/src/com/android/inputmethod/research/FixedLogBuffer.java
parent550824c7cfe15cf988f8baab64c3482d1c7906fa (diff)
parentbf62dc9460408dc37324c03735ab13c2cdf45396 (diff)
downloadlatinime-56f35a10cde1beeea51d99427992d832fa2de2bb.tar.gz
latinime-56f35a10cde1beeea51d99427992d832fa2de2bb.tar.xz
latinime-56f35a10cde1beeea51d99427992d832fa2de2bb.zip
Merge "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.java26
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() {