зеркало из https://github.com/mono/ikvm-fork.git
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:
Родитель
75ac0452bf
Коммит
e5bea7a81b
|
@ -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;
|
||||
|
|
Загрузка…
Ссылка в новой задаче