Avoid copying the entire package contents in order to construct the line number table.

--
MOS_MIGRATED_REVID=96010987
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/LineNumberTable.java b/src/main/java/com/google/devtools/build/lib/syntax/LineNumberTable.java
index 653abee..7867455 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/LineNumberTable.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/LineNumberTable.java
@@ -23,6 +23,7 @@
 import com.google.devtools.build.lib.vfs.PathFragment;
 
 import java.io.Serializable;
+import java.nio.CharBuffer;
 import java.util.ArrayList;
 import java.util.Comparator;
 import java.util.List;
@@ -185,8 +186,7 @@
     private final int bufferLength;
 
     private HashLine(char[] buffer, PathFragment defaultPath) {
-      // Not especially efficient, but that's fine: we just exec'd Python.
-      String bufString = new String(buffer);
+      CharSequence bufString = CharBuffer.wrap(buffer);
       Matcher m = pattern.matcher(bufString);
       List<SingleHashLine> unorderedTable = new ArrayList<>();
       while (m.find()) {