From 41296e2a2391863bdaa411bb67d8ac9af3e39fde Mon Sep 17 00:00:00 2001 From: Bryce McKinlay Date: Mon, 26 Jul 1999 02:51:44 +0000 Subject: natString.cc (substring): optimize where substring is entire String. 1999-07-22 Bryce McKinlay * java/lang/natString.cc (substring): optimize where substring is entire String. * java/io/File.java (getName): don't return separator with file name. * java/io/natFile.cc (attr): fix overflow. From-SVN: r28246 --- libjava/java/io/File.java | 4 +--- libjava/java/io/natFile.cc | 2 +- libjava/java/lang/natString.cc | 2 ++ 3 files changed, 4 insertions(+), 4 deletions(-) (limited to 'libjava/java') diff --git a/libjava/java/io/File.java b/libjava/java/io/File.java index fa098e2..fd96501 100644 --- a/libjava/java/io/File.java +++ b/libjava/java/io/File.java @@ -108,9 +108,7 @@ public class File implements Serializable public String getName () { int last = path.lastIndexOf(separatorChar); - if (last == -1) - last = 0; - return path.substring(last); + return path.substring(last + 1); } public String getParent () diff --git a/libjava/java/io/natFile.cc b/libjava/java/io/natFile.cc index 40f2277..9b9a4af 100644 --- a/libjava/java/io/natFile.cc +++ b/libjava/java/io/natFile.cc @@ -105,7 +105,7 @@ java::io::File::attr (jstring canon, jint query) JvAssert (query == MODIFIED || query == LENGTH); // FIXME: time computation is very POSIX-specific -- POSIX and Java // have the same Epoch. - return query == MODIFIED ? sb.st_mtime * 1000 : sb.st_size; + return query == MODIFIED ? (jlong)sb.st_mtime * 1000 : sb.st_size; #else // There's no good choice here. return 23; diff --git a/libjava/java/lang/natString.cc b/libjava/java/lang/natString.cc index 08f1755..bfdc50f 100644 --- a/libjava/java/lang/natString.cc +++ b/libjava/java/lang/natString.cc @@ -687,6 +687,8 @@ java::lang::String::substring (jint beginIndex, jint endIndex) { if (beginIndex < 0 || endIndex > count || beginIndex > endIndex) JvThrow (new StringIndexOutOfBoundsException()); + if (beginIndex == 0 && endIndex == count) + return this; jint newCount = endIndex - beginIndex; if (newCount <= 8) // Optimization, mainly for GC. return JvNewString(JvGetStringChars(this) + beginIndex, newCount); -- cgit v1.1