InitializerProcessor: disable static and dynamic initializers
This makes it harder for the mapper since it can't look at initialization order of field initializers. This also causes the initialization order of fields to be dependent on the order they are in the class file, which can produce broken code. See IDEA-172187.
This commit is contained in:
@@ -38,10 +38,10 @@ public class InitializerProcessor {
|
|||||||
|
|
||||||
MethodWrapper meth = wrapper.getMethodWrapper(CodeConstants.CLINIT_NAME, "()V");
|
MethodWrapper meth = wrapper.getMethodWrapper(CodeConstants.CLINIT_NAME, "()V");
|
||||||
if (meth != null && meth.root != null) { // successfully decompiled static constructor
|
if (meth != null && meth.root != null) { // successfully decompiled static constructor
|
||||||
extractStaticInitializers(wrapper, meth);
|
//extractStaticInitializers(wrapper, meth);
|
||||||
}
|
}
|
||||||
|
|
||||||
extractDynamicInitializers(wrapper);
|
//extractDynamicInitializers(wrapper);
|
||||||
|
|
||||||
// required e.g. if anonymous class is being decompiled as a standard one.
|
// required e.g. if anonymous class is being decompiled as a standard one.
|
||||||
// This can happen if InnerClasses attributes are erased
|
// This can happen if InnerClasses attributes are erased
|
||||||
|
|||||||
Reference in New Issue
Block a user