#2904·jadx

[核心] "从重复块中移除了指令 ... 请将此问题报告给我们"在正确的输出中

作者: obus-globus创建于 2026年7月1日更新于 2026年7月1日

static String f(boolean a, boolean b, String s) { if (a || b) { s = s + ".mp4"; } return s; } Minimal input, no Android tooling (Jasmin; .class/.jar build with dex2jar's bundled d2j-jasmin2jar.sh): .method public static f(ZZLjava/lang/String;)Ljava/lang/String; iload 0 ifne L0 // a -> L0 aload 2 astore 3 iload 1 ifeq L1 // !b -> skip L0: // shared block, two predecessors new java/lang/StringBuilder dup invokespecial java/lang/StringBuilder/()V astore 3 // builder in a local (dex2jar idiom) aload 3 aload 2 invokevirtual java/lang/StringBuilder/append(Ljava/lang/String;)Ljava/lang/StringBuilder; pop aload 3 ldc ".mp4" invokevirtual java/lang/StringBuilder/append(Ljava/lang/String;)Ljava/lang/StringBuilder; pop aload 3 invokevirtual java/lang/StringBuilder/toString()Ljava/lang/String; astore 3 L1: aload 3 areturn .limit locals 4 .limit stack 2 .end method Output on master ("8c28a85"), correct code with two spurious warnings: /* JADX WARN: Code duplicated, block: B:6:0x000a / / JADX WARN: Instruction removed from duplicated block: B:6:0x000a, please report this as an issue */ public static String f(boolean z, boolean z2, String str) { String str2; if (z) { str2 = str + ".mp4"; } else { str2 = str; if (z2) { str2 = str + ".mp4"; } } return str2; } Found in a public app: "com.rubenmayayo.reddit" (Boost for Reddit) 1.12.12, method "rb.FileCacheManager.getFileNameFromUrl" (after running the APK through dex2jar).