in metrics/src/main/java/com/facebook/battery/metrics/core/ProcFileReader.java [143:175]
public CharBuffer readWord(CharBuffer buffer) {
buffer.clear();
boolean isFirstRun = true;
while (hasNext()) {
next();
if (!Character.isWhitespace(mChar)) {
if (!buffer.hasRemaining()) {
CharBuffer newBuffer = CharBuffer.allocate(buffer.capacity() * 2);
buffer.flip();
newBuffer.put(buffer);
buffer = newBuffer;
}
buffer.put(mChar);
} else if (isFirstRun) {
throw new ParseException("Couldn't read string!");
} else {
rewind();
break;
}
isFirstRun = false;
}
if (isFirstRun) {
throw new ParseException("Couldn't read string because file ended!");
}
buffer.flip();
return buffer;
}