# HG changeset patch # User Michael Van De Vanter # Date 1418428655 28800 # Node ID db8ce7ad932bf5d1848138fcd78fb7ee7d52082f # Parent f17b2a0303db86451387f4ed7d8b8f853de5b738# Parent 449583258a1575ecc8e498103770eea2a3972fff Merge with 449583258a1575ecc8e498103770eea2a3972fff diff -r 449583258a15 -r db8ce7ad932b graal/com.oracle.truffle.api/src/com/oracle/truffle/api/source/Source.java --- a/graal/com.oracle.truffle.api/src/com/oracle/truffle/api/source/Source.java Fri Dec 12 23:41:07 2014 +0100 +++ b/graal/com.oracle.truffle.api/src/com/oracle/truffle/api/source/Source.java Fri Dec 12 15:57:35 2014 -0800 @@ -35,7 +35,7 @@ * *

* File cache: @@ -122,27 +122,28 @@ } /** - * Creates a non-canonical source from literal text. + * Creates a non-canonical source from literal text. If an already created literal source must + * be retrievable by name, use {@link #asPseudoFile(CharSequence, String)}. * - * @param code textual source code + * @param chars textual source code * @param description a note about the origin, for error messages and debugging * @return a newly created, non-indexed source representation */ - public static Source fromText(String code, String description) { - assert code != null; - return new LiteralSource(description, code); + public static Source fromText(CharSequence chars, String description) { + assert chars != null; + return new LiteralSource(description, chars.toString()); } /** * Creates a source whose contents will be read immediately from a URL and cached. * * @param url - * @param name identifies the origin, possibly useful for debugging + * @param description identifies the origin, possibly useful for debugging * @return a newly created, non-indexed source representation * @throws IOException if reading fails */ - public static Source fromURL(URL url, String name) throws IOException { - return URLSource.get(url, name); + public static Source fromURL(URL url, String description) throws IOException { + return URLSource.get(url, description); } /** @@ -192,12 +193,12 @@ * Creates a source from literal text, but which acts as a file and can be retrieved by name * (unlike other literal sources); intended for testing. * - * @param code textual source code + * @param chars textual source code * @param pseudoFileName string to use for indexing/lookup * @return a newly created, source representation, canonical with respect to its name */ - public static Source asPseudoFile(String code, String pseudoFileName) { - final Source source = new LiteralSource(pseudoFileName, code); + public static Source asPseudoFile(CharSequence chars, String pseudoFileName) { + final Source source = new LiteralSource(pseudoFileName, chars.toString()); filePathToSource.put(pseudoFileName, new WeakReference<>(source)); return source; } @@ -212,11 +213,12 @@ } private static String read(Reader reader) throws IOException { + final BufferedReader bufferedReader = new BufferedReader(reader); final StringBuilder builder = new StringBuilder(); final char[] buffer = new char[1024]; while (true) { - final int n = reader.read(buffer); + final int n = bufferedReader.read(buffer); if (n == -1) { break; }