Removed support for "ikvm.stubgen.serialver" property that is no longer needed now that ikvmstub doesn't use the runtime to generate stubs.

This commit is contained in:
jfrijters 2010-01-28 08:05:34 +00:00
Родитель 75ac0452bf
Коммит e5bea7a81b
2 изменённых файлов: 2 добавлений и 28 удалений

Просмотреть файл

@ -58,7 +58,6 @@ public final class StubGenerator implements PrivilegedAction<byte[]>
public byte[] run()
{
boolean includeNonPublicInterfaces = !"true".equalsIgnoreCase(System.getProperty("ikvm.stubgen.skipNonPublicInterfaces"));
boolean includeSerialVersionUIDs = "true".equalsIgnoreCase(System.getProperty("ikvm.stubgen.serialver"));
Class outer = c.getDeclaringClass();
String name = c.getName().replace('.', '/');
String superClass = null;
@ -237,17 +236,11 @@ public final class StubGenerator implements PrivilegedAction<byte[]>
}
}
}
boolean hasSerialVersionUID = false;
java.lang.reflect.Field[] fields = c.getDeclaredFields();
for(int i = 0; i < fields.length; i++)
{
int mods = fields[i].getModifiers();
boolean serialVersionUID = includeSerialVersionUIDs && fields[i].getName().equals("serialVersionUID");
hasSerialVersionUID |= serialVersionUID;
if((mods & (Modifiers.Public | Modifiers.Protected)) != 0 ||
// Include serialVersionUID field, to make Japitools comparison more acurate
((mods & (Modifiers.Static | Modifiers.Final)) == (Modifiers.Static | Modifiers.Final) &&
serialVersionUID && fields[i].getType() == java.lang.Long.TYPE))
if((mods & (Modifiers.Public | Modifiers.Protected)) != 0)
{
// NOTE we can't use Field.get() because that will run the static initializer and
// also won't allow us to see the difference between constants and blank final fields,
@ -278,16 +271,6 @@ public final class StubGenerator implements PrivilegedAction<byte[]>
}
}
}
if(!hasSerialVersionUID && includeSerialVersionUIDs)
{
ObjectStreamClass osc = ObjectStreamClass.lookup(c);
if(osc != null)
{
// class is serializable but doesn't have an explicit serialVersionUID, so we add the field to record
// the serialVersionUID as we see it (mainly to make the Japi reports more realistic)
f.AddField(Modifiers.Private | Modifiers.Static | Modifiers.Final, "serialVersionUID", "J", osc.getSerialVersionUID());
}
}
if(innerClassesAttribute != null)
{
f.AddAttribute(innerClassesAttribute);

Просмотреть файл

@ -647,14 +647,8 @@ namespace IKVM.NativeCode.java
static class ObjectStreamClass
{
private static bool runClassInit;
public static void initNative()
{
#if !FIRST_PASS
// HACK if we're being run from ikvmstub, don't run the static initializer
runClassInit = !"true".Equals(ClassLoaderWrapper.DoPrivileged(new global::sun.security.action.GetPropertyAction("ikvm.stubgen.serialver")));
#endif
}
public static bool isDynamicTypeWrapper(object cl)
@ -677,10 +671,7 @@ namespace IKVM.NativeCode.java
Type type = wrapper.TypeAsTBD;
if (!type.IsArray && type.TypeInitializer != null)
{
if (runClassInit)
{
wrapper.RunClassInit();
}
wrapper.RunClassInit();
return !AttributeHelper.IsHideFromJava(type.TypeInitializer);
}
return false;