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:
parent
d99c740f58
commit
827452ae5c
8 changed files with 102 additions and 33 deletions
|
@ -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 ();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue