Makefile.am (core_java_source_files): Add VMObjectStreamClass.java.

* Makefile.am (core_java_source_files): Add VMObjectStreamClass.java.
       (nat_source_files): Add natVMObjectStreamClass.cc.
       * Makefile.in: Regenerated.
       * gcj/javaprims.h (namespace java): Regenerated.
       * java/io/ObjectStreamClass.java (getClassUID): Call
       VMObjectStreamClass.hasClassInitializer().
       (hasClassInitializer): Removed.
       * java/io/VMObjectStreamClass.java: New class.
       * java/io/natVMObjectStreamClass.cc: New file.
       * java/lang/Class.h: Make java::io::VMObjectStreamClass friend class.

From-SVN: r61501
This commit is contained in:
Mark Wielaard 2003-01-20 06:46:28 +00:00 committed by Mark Wielaard
parent d99c740f58
commit 827452ae5c
8 changed files with 102 additions and 33 deletions

View file

@ -525,7 +525,7 @@ public class ObjectStreamClass implements Serializable
}
// write class initializer method if present
if (hasClassInitializer (cl))
if (VMObjectStreamClass.hasClassInitializer (cl))
{
data_out.writeUTF ("<clinit>");
data_out.writeInt (Modifier.STATIC);
@ -613,31 +613,6 @@ public class ObjectStreamClass implements Serializable
return o;
}
// Returns true if CLAZZ has a static class initializer
// (a.k.a. <clinit>).
private static boolean hasClassInitializer (Class clazz)
{
Method m = null;
try
{
/*
* There exists a problem here, according to the spec
* clazz.getDeclaredMethod ("<clinit>", classArgs);
* will always throw NoSuchMethodException, even if the static
* intializer does exist.
*/
Class classArgs[] = {};
m = clazz.getDeclaredMethod ("<clinit>", classArgs);
}
catch (java.lang.NoSuchMethodException e)
{
}
return m != null;
}
public static final ObjectStreamField[] NO_FIELDS = {};
private static Hashtable classLookupTable = new Hashtable ();