From 0a5468d6396a8cd32a64c450935653aec2d3b19f Mon Sep 17 00:00:00 2001 From: adam-m Date: Wed, 8 Aug 2012 14:50:19 -0400 Subject: [PATCH] String extract code optimization - do not use sort() to get the best result --- .../autopsy/coreutils/StringExtract.java | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/CoreUtils/src/org/sleuthkit/autopsy/coreutils/StringExtract.java b/CoreUtils/src/org/sleuthkit/autopsy/coreutils/StringExtract.java index 79e6f44a31..68357d9814 100644 --- a/CoreUtils/src/org/sleuthkit/autopsy/coreutils/StringExtract.java +++ b/CoreUtils/src/org/sleuthkit/autopsy/coreutils/StringExtract.java @@ -148,16 +148,17 @@ public class StringExtract { } //extract using all methods and see which one wins - List results = new ArrayList(); + StringExtractResult resUTF16 = null; if (curOffset % 2 == 0) { - results.add(extractUTF16(buff, len, curOffset, true)); - results.add(extractUTF16(buff, len, curOffset, false)); + StringExtractResult resUTF16En1 = extractUTF16(buff, len, curOffset, true); + StringExtractResult resUTF16En2 = extractUTF16(buff, len, curOffset, false); + resUTF16 = resUTF16En1.numChars > resUTF16En2.numChars? resUTF16En1 : resUTF16En2; } - results.add(extractUTF8(buff, len, curOffset)); - - Collections.sort(results); - - StringExtractResult resWin = results.get(0); + //results.add(extractUTF8(buff, len, curOffset)); + StringExtractResult resUTF8 = extractUTF8(buff, len, curOffset); + + StringExtractResult resWin; + resWin = resUTF16 != null && resUTF16.numChars > resUTF8.numChars ? resUTF16 : resUTF8; if (resWin.numChars >= MIN_CHARS_STRING) { //record string