mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IJ-CR-153375 [java-decompiler] IDEA-289211 set limits for some cases in decompiler
- change messages - add test cases GitOrigin-RevId: 8347f136818567abccf56a4c110b77456870fd4e
This commit is contained in:
committed by
intellij-monorepo-bot
parent
9bc89d57d1
commit
0c6294eea6
@@ -27,8 +27,6 @@ action.show.decompiled.name=Show Decompiled Class
|
||||
|
||||
decompiling.progress=Decompiling {0}
|
||||
|
||||
max.direct.nodes.count.message=Limits for direct nodes are exceeded, limits can be increased in Settings->Advanced settings->Java Bytecode Decompiler
|
||||
max.variable.nodes.count.message=Limits for variable nodes are exceeded, limits can be increased in Settings->Advanced settings->Java Bytecode Decompiler
|
||||
advanced.setting.decompiler.max.direct.nodes.count=Max count of direct nodes
|
||||
advanced.setting.decompiler.max.variable.nodes.count=Max count of variable nodes
|
||||
advanced.setting.group.decompiler=Java Bytecode Decompiler
|
||||
|
||||
@@ -131,10 +131,7 @@ class IdeaDecompiler : ClassFileDecompilers.Light() {
|
||||
if (Registry.`is`("decompiler.dump.original.lines")) {
|
||||
options[IFernflowerPreferences.DUMP_ORIGINAL_LINES] = "1"
|
||||
}
|
||||
options[IFernflowerPreferences.MAX_DIRECT_NODES_COUNT_MESSAGE] = IdeaDecompilerBundle.message("max.direct.nodes.count.message")
|
||||
options[IFernflowerPreferences.MAX_DIRECT_NODES_COUNT] = AdvancedSettings.getInt("decompiler.max.direct.nodes.count")
|
||||
|
||||
options[IFernflowerPreferences.MAX_DIRECT_VARIABLE_NODES_COUNT_MESSAGE] = IdeaDecompilerBundle.message("max.variable.nodes.count.message")
|
||||
options[IFernflowerPreferences.MAX_DIRECT_VARIABLE_NODE_COUNT] = AdvancedSettings.getInt("decompiler.max.variable.nodes.count")
|
||||
|
||||
val provider = MyBytecodeProvider(files)
|
||||
|
||||
+13
@@ -80,6 +80,11 @@ class IdeaDecompilerTest : LightJavaCodeInsightFixtureTestCase() {
|
||||
val file = getTestFile("${IdeaTestUtil.getMockJdk18Path().path}/jre/lib/rt.jar!/java/lang/String.class")
|
||||
val decompiled = IdeaDecompiler().getText(file).toString()
|
||||
assertTrue(decompiled, decompiled.contains("Limits for direct nodes are exceeded"))
|
||||
//small methods are decompiled normally
|
||||
assertTrue(decompiled, decompiled.contains("""
|
||||
public String(char[] var1) {
|
||||
this.value = Arrays.copyOf(var1, var1.length);
|
||||
}""".trimIndent()))
|
||||
}
|
||||
finally {
|
||||
AdvancedSettings.setInt(advancedSetting, previousCount)
|
||||
@@ -94,6 +99,14 @@ class IdeaDecompilerTest : LightJavaCodeInsightFixtureTestCase() {
|
||||
val file = getTestFile("${IdeaTestUtil.getMockJdk18Path().path}/jre/lib/rt.jar!/java/lang/String.class")
|
||||
val decompiled = IdeaDecompiler().getText(file).toString()
|
||||
assertTrue(decompiled, decompiled.contains("Limits for variable nodes are exceeded"))
|
||||
//small methods are decompiled normally
|
||||
assertTrue(decompiled, decompiled.contains(
|
||||
"""
|
||||
public char[] toCharArray() {
|
||||
char[] var1 = new char[this.value.length];
|
||||
System.arraycopy(this.value, 0, var1, 0, this.value.length);
|
||||
return var1;
|
||||
}""".trimIndent()))
|
||||
}
|
||||
finally {
|
||||
AdvancedSettings.setInt(advancedSetting, previousCount)
|
||||
|
||||
Reference in New Issue
Block a user