mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-01-06 03:21:12 +07:00
IDEA-230489 Plugin built with latest intellij master will not run in 2019.3
form GUI compiler: disable bytecode generation with dynamic bundles by default GitOrigin-RevId: f8128c0f2ffbb5e92d0fcfed1df3dcb061c3c789
This commit is contained in:
committed by
intellij-monorepo-bot
parent
8ae5daeca3
commit
acb6bd75d5
@@ -59,6 +59,7 @@ public class AsmCodeGenerator {
|
||||
|
||||
private final NestedFormLoader myFormLoader;
|
||||
private final boolean myIgnoreCustomCreation;
|
||||
private final boolean myUseDynamicBundles;
|
||||
private final ClassWriter myClassWriter;
|
||||
|
||||
static {
|
||||
@@ -89,9 +90,11 @@ public class AsmCodeGenerator {
|
||||
InstrumentationClassFinder finder,
|
||||
NestedFormLoader formLoader,
|
||||
final boolean ignoreCustomCreation,
|
||||
boolean useDynamicBundles,
|
||||
final ClassWriter classWriter) {
|
||||
myFormLoader = formLoader;
|
||||
myIgnoreCustomCreation = ignoreCustomCreation;
|
||||
myUseDynamicBundles = useDynamicBundles;
|
||||
if (finder == null){
|
||||
throw new IllegalArgumentException("loader cannot be null");
|
||||
}
|
||||
@@ -105,6 +108,14 @@ public class AsmCodeGenerator {
|
||||
myWarnings = new ArrayList<FormErrorInfo>();
|
||||
myClassWriter = classWriter;
|
||||
}
|
||||
|
||||
public AsmCodeGenerator(LwRootContainer rootContainer,
|
||||
InstrumentationClassFinder finder,
|
||||
NestedFormLoader formLoader,
|
||||
final boolean ignoreCustomCreation,
|
||||
final ClassWriter classWriter) {
|
||||
this(rootContainer, finder, formLoader, ignoreCustomCreation, false, classWriter);
|
||||
}
|
||||
|
||||
public void patchFile(final File classFile) {
|
||||
if (!classFile.exists()) {
|
||||
@@ -175,7 +186,7 @@ public class AsmCodeGenerator {
|
||||
FirstPassClassVisitor visitor = new FirstPassClassVisitor();
|
||||
reader.accept(visitor, 0);
|
||||
|
||||
reader.accept(new FormClassVisitor(myClassWriter, visitor.isExplicitSetupCall()), 0);
|
||||
reader.accept(new FormClassVisitor(myClassWriter, visitor.isExplicitSetupCall(), myUseDynamicBundles), 0);
|
||||
myPatchedData = myClassWriter.toByteArray();
|
||||
return myPatchedData;
|
||||
}
|
||||
@@ -227,10 +238,12 @@ public class AsmCodeGenerator {
|
||||
private boolean myHaveCreateComponentsMethod = false;
|
||||
private int myCreateComponentsAccess;
|
||||
private final boolean myExplicitSetupCall;
|
||||
final boolean useDynamicBundles;
|
||||
|
||||
FormClassVisitor(final ClassVisitor cv, final boolean explicitSetupCall) {
|
||||
FormClassVisitor(final ClassVisitor cv, final boolean explicitSetupCall, boolean useDynamicBundles) {
|
||||
super(ASM_API_VERSION, cv);
|
||||
myExplicitSetupCall = explicitSetupCall;
|
||||
this.useDynamicBundles = useDynamicBundles;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -56,11 +56,13 @@ public final class StringPropertyCodeGenerator extends PropertyCodeGenerator imp
|
||||
}
|
||||
catch (Exception ignored) {}
|
||||
|
||||
try {
|
||||
classFinder.loadClass("com.intellij.DynamicBundle");
|
||||
dynamicBundleType = Type.getType("Lcom/intellij/DynamicBundle;");
|
||||
if (visitor.useDynamicBundles) {
|
||||
try {
|
||||
classFinder.loadClass("com.intellij.DynamicBundle");
|
||||
dynamicBundleType = Type.getType("Lcom/intellij/DynamicBundle;");
|
||||
}
|
||||
catch (Exception ignored) {}
|
||||
}
|
||||
catch (Exception ignored) {}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user