String extract code optimization - do not use sort() to get the best result

This commit is contained in:
adam-m 2012-08-08 14:50:19 -04:00
parent 223f89c6f6
commit 0a5468d639

View File

@ -148,16 +148,17 @@ public class StringExtract {
} }
//extract using all methods and see which one wins //extract using all methods and see which one wins
List<StringExtractResult> results = new ArrayList<StringExtractResult>(); StringExtractResult resUTF16 = null;
if (curOffset % 2 == 0) { if (curOffset % 2 == 0) {
results.add(extractUTF16(buff, len, curOffset, true)); StringExtractResult resUTF16En1 = extractUTF16(buff, len, curOffset, true);
results.add(extractUTF16(buff, len, curOffset, false)); StringExtractResult resUTF16En2 = extractUTF16(buff, len, curOffset, false);
resUTF16 = resUTF16En1.numChars > resUTF16En2.numChars? resUTF16En1 : resUTF16En2;
} }
results.add(extractUTF8(buff, len, curOffset)); //results.add(extractUTF8(buff, len, curOffset));
StringExtractResult resUTF8 = extractUTF8(buff, len, curOffset);
Collections.sort(results);
StringExtractResult resWin;
StringExtractResult resWin = results.get(0); resWin = resUTF16 != null && resUTF16.numChars > resUTF8.numChars ? resUTF16 : resUTF8;
if (resWin.numChars >= MIN_CHARS_STRING) { if (resWin.numChars >= MIN_CHARS_STRING) {
//record string //record string