]> gcc.gnu.org Git - gcc.git/commitdiff
natString.cc (substring): optimize where substring is entire String.
authorBryce McKinlay <bryce@albatross.co.nz>
Mon, 26 Jul 1999 02:51:44 +0000 (02:51 +0000)
committerBryce McKinlay <bryce@gcc.gnu.org>
Mon, 26 Jul 1999 02:51:44 +0000 (03:51 +0100)
1999-07-22  Bryce McKinlay  <bryce@albatross.co.nz>

* 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/ChangeLog
libjava/java/io/File.java
libjava/java/io/natFile.cc
libjava/java/lang/natString.cc

index 4b6fd5e08593cd07796b7bdfcbe5962a8d77f58c..5c4510e30aa2b987e3083aaacc8c70290e5d0c48 100644 (file)
@@ -1,3 +1,10 @@
+1999-07-22  Bryce McKinlay  <bryce@albatross.co.nz>
+
+       * 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.
+
 Sun Jul 25 01:43:34 1999  Anthony Green  <green@cygnus.com>
 
        * mauve-libgcj: Disable Object Serialization tests.
index fa098e26bf532da6264a014ffcbc2045eb238688..fd96501cf2525889e00396e7ac0dcc58981b1ed3 100644 (file)
@@ -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 ()
index 40f227719e5f1a742ed4d42acc8b04cd2d309de7..9b9a4affea6d15b5afc9ba055fbf8dd0230a6ab6 100644 (file)
@@ -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;
index 08f1755715dadaf7f90c3b913b441626a6a46e54..bfdc50fb7db65e2610bfdbdd3734c3ac036af673 100644 (file)
@@ -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);
This page took 0.067299 seconds and 5 git commands to generate.