From 9f8e4e845ba0240f599fd541c5cee10cf8654cc5 Mon Sep 17 00:00:00 2001 From: Andrew Haley Date: Thu, 22 May 2008 16:20:55 +0000 Subject: [PATCH] re PR libgcj/35020 (Class.getSimpleName() differs from Sun Java) 2008-05-22 Andrew Haley PR libgcj/35020 * java/lang/Class.java (getSimpleName): Import from GNU Classpath. From-SVN: r135771 --- libjava/ChangeLog | 5 +++ libjava/classpath/lib/java/lang/Class$1.class | Bin 677 -> 677 bytes libjava/classpath/lib/java/lang/Class.class | Bin 15647 -> 15581 bytes libjava/java/lang/Class.java | 29 ++++++++++-------- 4 files changed, 22 insertions(+), 12 deletions(-) diff --git a/libjava/ChangeLog b/libjava/ChangeLog index e8cd46e89475..52061d2c1eda 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,8 @@ +2008-05-22 Andrew Haley + + PR libgcj/35020 + * java/lang/Class.java (getSimpleName): Import from GNU Classpath. + 2008-05-20 David Daney PR libgcj/36252 diff --git a/libjava/classpath/lib/java/lang/Class$1.class b/libjava/classpath/lib/java/lang/Class$1.class index 51ef8849385cda3875ba35c8353cd59c40f3e8e8..09e3e86f9954b60f48813dff60c6349d9a59a6f1 100644 GIT binary patch delta 23 fc-mXax|DT;1`}iNWKAYV)`<)ptdl0^GnoMZPU;3L delta 23 ec-mXax|DT;1`}h)WKAYV)*c29*51kaOlAO1Sq2;c diff --git a/libjava/classpath/lib/java/lang/Class.class b/libjava/classpath/lib/java/lang/Class.class index ffe072f5337a6bcc931dad981f40f1c6cad76519..bdcfcfe83bda48e1ab9fce5acf4427d4f3df4cc3 100644 GIT binary patch delta 2161 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 diff --git a/libjava/java/lang/Class.java b/libjava/java/lang/Class.java index 691f983b0b55..d59e83ea4ec3 100644 --- a/libjava/java/lang/Class.java +++ b/libjava/java/lang/Class.java @@ -1075,22 +1075,27 @@ public final class Class */ public String getSimpleName() { - StringBuffer sb = new StringBuffer(); - Class klass = this; - int arrayCount = 0; - while (klass.isArray()) + if (isAnonymousClass()) + return ""; + if (isArray()) { - klass = klass.getComponentType(); - ++arrayCount; + return getComponentType().getSimpleName() + "[]"; } - if (! klass.isAnonymousClass()) + String fullName = getName(); + int pos = fullName.lastIndexOf("$"); + if (pos == -1) + pos = 0; + else { - String fullName = klass.getName(); - sb.append(fullName, fullName.lastIndexOf(".") + 1, fullName.length()); + ++pos; + while (Character.isDigit(fullName.charAt(pos))) + ++pos; } - while (arrayCount-- > 0) - sb.append("[]"); - return sb.toString(); + int packagePos = fullName.lastIndexOf(".", pos); + if (packagePos == -1) + return fullName.substring(pos); + else + return fullName.substring(packagePos + 1); } /** -- 2.47.3