fix: skip duplicated block in complex if (#441)
This commit is contained in:
@@ -263,7 +263,18 @@ public class IfMakerHelper {
|
||||
result.setIfBlock(first.getIfBlock());
|
||||
result.merge(first, second);
|
||||
|
||||
BlockNode otherPathBlock = followThenBranch ? first.getElseBlock() : first.getThenBlock();
|
||||
BlockNode otherPathBlock;
|
||||
if (followThenBranch) {
|
||||
otherPathBlock = first.getElseBlock();
|
||||
if (!otherPathBlock.equals(result.getElseBlock())) {
|
||||
result.getSkipBlocks().add(otherPathBlock);
|
||||
}
|
||||
} else {
|
||||
otherPathBlock = first.getThenBlock();
|
||||
if (!otherPathBlock.equals(result.getThenBlock())) {
|
||||
result.getSkipBlocks().add(otherPathBlock);
|
||||
}
|
||||
}
|
||||
skipSimplePath(otherPathBlock, result.getSkipBlocks());
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
package jadx.tests.integration.conditions;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
import jadx.core.dex.nodes.ClassNode;
|
||||
import jadx.tests.api.SmaliTest;
|
||||
|
||||
import static jadx.tests.api.utils.JadxMatchers.containsOne;
|
||||
import static org.junit.Assert.assertThat;
|
||||
|
||||
public class TestComplexIf extends SmaliTest {
|
||||
|
||||
/*
|
||||
public final class TestComplexIf {
|
||||
private String a;
|
||||
private int b;
|
||||
private float c;
|
||||
|
||||
public final boolean test() {
|
||||
if (this.a.equals("GT-P6200") || this.a.equals("GT-P6210") || ... ) {
|
||||
return true;
|
||||
}
|
||||
if (this.a.equals("SM-T810") || this.a.equals("SM-T813") || ...) {
|
||||
return false;
|
||||
}
|
||||
return this.c > 160.0f ? true : this.c <= 0.0f && ((this.b & 15) == 4 ? 1 : null) != null;
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
@Test
|
||||
public void test() {
|
||||
ClassNode cls = getClassNodeFromSmaliWithPkg("conditions", "TestComplexIf");
|
||||
String code = cls.getCode().toString();
|
||||
|
||||
assertThat(code, containsOne("if (this.a.equals(\"GT-P6200\") || this.a.equals(\"GT-P6210\") || this.a.equals(\"A100\") " +
|
||||
"|| this.a.equals(\"A101\") || this.a.equals(\"LIFETAB_S786X\") || this.a.equals(\"VS890 4G\")) {"));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,636 @@
|
||||
.class public final Lconditions/TestComplexIf;
|
||||
.super Ljava/lang/Object;
|
||||
|
||||
|
||||
# instance fields
|
||||
.field private a:Ljava/lang/String;
|
||||
|
||||
.field private b:I
|
||||
|
||||
.field private c:F
|
||||
|
||||
|
||||
# direct methods
|
||||
.method public constructor <init>()V
|
||||
.locals 1
|
||||
return-void
|
||||
.end method
|
||||
|
||||
.method public final test()Z
|
||||
.locals 5
|
||||
|
||||
iget-object v0, p0, Lconditions/TestComplexIf;->a:Ljava/lang/String;
|
||||
|
||||
const-string v1, "GT-P6200"
|
||||
|
||||
invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
||||
|
||||
move-result v0
|
||||
|
||||
const/4 v1, 0x1
|
||||
|
||||
if-nez v0, :cond_b
|
||||
|
||||
iget-object v0, p0, Lconditions/TestComplexIf;->a:Ljava/lang/String;
|
||||
|
||||
const-string v2, "GT-P6210"
|
||||
|
||||
invoke-virtual {v0, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
||||
|
||||
move-result v0
|
||||
|
||||
if-nez v0, :cond_b
|
||||
|
||||
iget-object v0, p0, Lconditions/TestComplexIf;->a:Ljava/lang/String;
|
||||
|
||||
const-string v2, "A100"
|
||||
|
||||
invoke-virtual {v0, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
||||
|
||||
move-result v0
|
||||
|
||||
if-nez v0, :cond_b
|
||||
|
||||
iget-object v0, p0, Lconditions/TestComplexIf;->a:Ljava/lang/String;
|
||||
|
||||
const-string v2, "A101"
|
||||
|
||||
invoke-virtual {v0, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
||||
|
||||
move-result v0
|
||||
|
||||
if-nez v0, :cond_b
|
||||
|
||||
iget-object v0, p0, Lconditions/TestComplexIf;->a:Ljava/lang/String;
|
||||
|
||||
const-string v2, "LIFETAB_S786X"
|
||||
|
||||
invoke-virtual {v0, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
||||
|
||||
move-result v0
|
||||
|
||||
if-eqz v0, :cond_0
|
||||
|
||||
goto/16 :goto_2
|
||||
|
||||
:cond_0
|
||||
iget-object v0, p0, Lconditions/TestComplexIf;->a:Ljava/lang/String;
|
||||
|
||||
const-string v2, "VS890 4G"
|
||||
|
||||
invoke-virtual {v0, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
||||
|
||||
move-result v0
|
||||
|
||||
if-eqz v0, :cond_1
|
||||
|
||||
return v1
|
||||
|
||||
:cond_1
|
||||
iget-object v0, p0, Lconditions/TestComplexIf;->a:Ljava/lang/String;
|
||||
|
||||
const-string v2, "SM-T810"
|
||||
|
||||
invoke-virtual {v0, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
||||
|
||||
move-result v0
|
||||
|
||||
const/4 v2, 0x0
|
||||
|
||||
if-nez v0, :cond_a
|
||||
|
||||
iget-object v0, p0, Lconditions/TestComplexIf;->a:Ljava/lang/String;
|
||||
|
||||
const-string v3, "SM-T813"
|
||||
|
||||
invoke-virtual {v0, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
||||
|
||||
move-result v0
|
||||
|
||||
if-nez v0, :cond_a
|
||||
|
||||
iget-object v0, p0, Lconditions/TestComplexIf;->a:Ljava/lang/String;
|
||||
|
||||
const-string v3, "SM-T815"
|
||||
|
||||
invoke-virtual {v0, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
||||
|
||||
move-result v0
|
||||
|
||||
if-nez v0, :cond_a
|
||||
|
||||
iget-object v0, p0, Lconditions/TestComplexIf;->a:Ljava/lang/String;
|
||||
|
||||
const-string v3, "SM-T815N0"
|
||||
|
||||
invoke-virtual {v0, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
||||
|
||||
move-result v0
|
||||
|
||||
if-nez v0, :cond_a
|
||||
|
||||
iget-object v0, p0, Lconditions/TestComplexIf;->a:Ljava/lang/String;
|
||||
|
||||
const-string v3, "SM-T815Y"
|
||||
|
||||
invoke-virtual {v0, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
||||
|
||||
move-result v0
|
||||
|
||||
if-nez v0, :cond_a
|
||||
|
||||
iget-object v0, p0, Lconditions/TestComplexIf;->a:Ljava/lang/String;
|
||||
|
||||
const-string v3, "SM-T820"
|
||||
|
||||
invoke-virtual {v0, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
||||
|
||||
move-result v0
|
||||
|
||||
if-nez v0, :cond_a
|
||||
|
||||
iget-object v0, p0, Lconditions/TestComplexIf;->a:Ljava/lang/String;
|
||||
|
||||
const-string v3, "SM-T825"
|
||||
|
||||
invoke-virtual {v0, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
||||
|
||||
move-result v0
|
||||
|
||||
if-nez v0, :cond_a
|
||||
|
||||
iget-object v0, p0, Lconditions/TestComplexIf;->a:Ljava/lang/String;
|
||||
|
||||
const-string v3, "SM-P585"
|
||||
|
||||
invoke-virtual {v0, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
||||
|
||||
move-result v0
|
||||
|
||||
if-nez v0, :cond_a
|
||||
|
||||
iget-object v0, p0, Lconditions/TestComplexIf;->a:Ljava/lang/String;
|
||||
|
||||
const-string v3, "SM-P585N0"
|
||||
|
||||
invoke-virtual {v0, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
||||
|
||||
move-result v0
|
||||
|
||||
if-nez v0, :cond_a
|
||||
|
||||
iget-object v0, p0, Lconditions/TestComplexIf;->a:Ljava/lang/String;
|
||||
|
||||
const-string v3, "SM-T561"
|
||||
|
||||
invoke-virtual {v0, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
||||
|
||||
move-result v0
|
||||
|
||||
if-nez v0, :cond_a
|
||||
|
||||
iget-object v0, p0, Lconditions/TestComplexIf;->a:Ljava/lang/String;
|
||||
|
||||
const-string v3, "SM-T567V"
|
||||
|
||||
invoke-virtual {v0, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
||||
|
||||
move-result v0
|
||||
|
||||
if-nez v0, :cond_a
|
||||
|
||||
iget-object v0, p0, Lconditions/TestComplexIf;->a:Ljava/lang/String;
|
||||
|
||||
const-string v3, "SM-T320"
|
||||
|
||||
invoke-virtual {v0, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
||||
|
||||
move-result v0
|
||||
|
||||
if-nez v0, :cond_a
|
||||
|
||||
iget-object v0, p0, Lconditions/TestComplexIf;->a:Ljava/lang/String;
|
||||
|
||||
const-string v3, "SM-T321"
|
||||
|
||||
invoke-virtual {v0, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
||||
|
||||
move-result v0
|
||||
|
||||
if-nez v0, :cond_a
|
||||
|
||||
iget-object v0, p0, Lconditions/TestComplexIf;->a:Ljava/lang/String;
|
||||
|
||||
const-string v3, "SM-T325"
|
||||
|
||||
invoke-virtual {v0, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
||||
|
||||
move-result v0
|
||||
|
||||
if-nez v0, :cond_a
|
||||
|
||||
iget-object v0, p0, Lconditions/TestComplexIf;->a:Ljava/lang/String;
|
||||
|
||||
const-string v3, "SM-T700"
|
||||
|
||||
invoke-virtual {v0, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
||||
|
||||
move-result v0
|
||||
|
||||
if-nez v0, :cond_a
|
||||
|
||||
iget-object v0, p0, Lconditions/TestComplexIf;->a:Ljava/lang/String;
|
||||
|
||||
const-string v3, "SM-T705"
|
||||
|
||||
invoke-virtual {v0, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
||||
|
||||
move-result v0
|
||||
|
||||
if-nez v0, :cond_a
|
||||
|
||||
iget-object v0, p0, Lconditions/TestComplexIf;->a:Ljava/lang/String;
|
||||
|
||||
const-string v3, "SM-T705M"
|
||||
|
||||
invoke-virtual {v0, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
||||
|
||||
move-result v0
|
||||
|
||||
if-nez v0, :cond_a
|
||||
|
||||
iget-object v0, p0, Lconditions/TestComplexIf;->a:Ljava/lang/String;
|
||||
|
||||
const-string v3, "SM-T705Y"
|
||||
|
||||
invoke-virtual {v0, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
||||
|
||||
move-result v0
|
||||
|
||||
if-nez v0, :cond_a
|
||||
|
||||
iget-object v0, p0, Lconditions/TestComplexIf;->a:Ljava/lang/String;
|
||||
|
||||
const-string v3, "SC-03G"
|
||||
|
||||
invoke-virtual {v0, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
||||
|
||||
move-result v0
|
||||
|
||||
if-nez v0, :cond_a
|
||||
|
||||
iget-object v0, p0, Lconditions/TestComplexIf;->a:Ljava/lang/String;
|
||||
|
||||
const-string v3, "GT-N5100"
|
||||
|
||||
invoke-virtual {v0, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
||||
|
||||
move-result v0
|
||||
|
||||
if-nez v0, :cond_a
|
||||
|
||||
iget-object v0, p0, Lconditions/TestComplexIf;->a:Ljava/lang/String;
|
||||
|
||||
const-string v3, "GT-N5105"
|
||||
|
||||
invoke-virtual {v0, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
||||
|
||||
move-result v0
|
||||
|
||||
if-nez v0, :cond_a
|
||||
|
||||
iget-object v0, p0, Lconditions/TestComplexIf;->a:Ljava/lang/String;
|
||||
|
||||
const-string v3, "GT-N5110"
|
||||
|
||||
invoke-virtual {v0, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
||||
|
||||
move-result v0
|
||||
|
||||
if-nez v0, :cond_a
|
||||
|
||||
iget-object v0, p0, Lconditions/TestComplexIf;->a:Ljava/lang/String;
|
||||
|
||||
const-string v3, "GT-N5120"
|
||||
|
||||
invoke-virtual {v0, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
||||
|
||||
move-result v0
|
||||
|
||||
if-nez v0, :cond_a
|
||||
|
||||
iget-object v0, p0, Lconditions/TestComplexIf;->a:Ljava/lang/String;
|
||||
|
||||
const-string v3, "SHW-M500W"
|
||||
|
||||
invoke-virtual {v0, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
||||
|
||||
move-result v0
|
||||
|
||||
if-nez v0, :cond_a
|
||||
|
||||
iget-object v0, p0, Lconditions/TestComplexIf;->a:Ljava/lang/String;
|
||||
|
||||
const-string v3, "SM-T310"
|
||||
|
||||
invoke-virtual {v0, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
||||
|
||||
move-result v0
|
||||
|
||||
if-nez v0, :cond_a
|
||||
|
||||
iget-object v0, p0, Lconditions/TestComplexIf;->a:Ljava/lang/String;
|
||||
|
||||
const-string v3, "SM-T311"
|
||||
|
||||
invoke-virtual {v0, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
||||
|
||||
move-result v0
|
||||
|
||||
if-nez v0, :cond_a
|
||||
|
||||
iget-object v0, p0, Lconditions/TestComplexIf;->a:Ljava/lang/String;
|
||||
|
||||
const-string v3, "SM-T315"
|
||||
|
||||
invoke-virtual {v0, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
||||
|
||||
move-result v0
|
||||
|
||||
if-nez v0, :cond_a
|
||||
|
||||
iget-object v0, p0, Lconditions/TestComplexIf;->a:Ljava/lang/String;
|
||||
|
||||
const-string v3, "SM-T330"
|
||||
|
||||
invoke-virtual {v0, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
||||
|
||||
move-result v0
|
||||
|
||||
if-nez v0, :cond_a
|
||||
|
||||
iget-object v0, p0, Lconditions/TestComplexIf;->a:Ljava/lang/String;
|
||||
|
||||
const-string v3, "SM-T330NU"
|
||||
|
||||
invoke-virtual {v0, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
||||
|
||||
move-result v0
|
||||
|
||||
if-nez v0, :cond_a
|
||||
|
||||
iget-object v0, p0, Lconditions/TestComplexIf;->a:Ljava/lang/String;
|
||||
|
||||
const-string v3, "SM-T331"
|
||||
|
||||
invoke-virtual {v0, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
||||
|
||||
move-result v0
|
||||
|
||||
if-nez v0, :cond_a
|
||||
|
||||
iget-object v0, p0, Lconditions/TestComplexIf;->a:Ljava/lang/String;
|
||||
|
||||
const-string v3, "SM-T335"
|
||||
|
||||
invoke-virtual {v0, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
||||
|
||||
move-result v0
|
||||
|
||||
if-nez v0, :cond_a
|
||||
|
||||
iget-object v0, p0, Lconditions/TestComplexIf;->a:Ljava/lang/String;
|
||||
|
||||
const-string v3, "SM-T337V"
|
||||
|
||||
invoke-virtual {v0, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
||||
|
||||
move-result v0
|
||||
|
||||
if-nez v0, :cond_a
|
||||
|
||||
iget-object v0, p0, Lconditions/TestComplexIf;->a:Ljava/lang/String;
|
||||
|
||||
const-string v3, "SM-T710"
|
||||
|
||||
invoke-virtual {v0, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
||||
|
||||
move-result v0
|
||||
|
||||
if-nez v0, :cond_a
|
||||
|
||||
iget-object v0, p0, Lconditions/TestComplexIf;->a:Ljava/lang/String;
|
||||
|
||||
const-string v3, "SM-T715"
|
||||
|
||||
invoke-virtual {v0, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
||||
|
||||
move-result v0
|
||||
|
||||
if-nez v0, :cond_a
|
||||
|
||||
iget-object v0, p0, Lconditions/TestComplexIf;->a:Ljava/lang/String;
|
||||
|
||||
const-string v3, "SM-T715N0"
|
||||
|
||||
invoke-virtual {v0, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
||||
|
||||
move-result v0
|
||||
|
||||
if-nez v0, :cond_a
|
||||
|
||||
iget-object v0, p0, Lconditions/TestComplexIf;->a:Ljava/lang/String;
|
||||
|
||||
const-string v3, "SM-T719"
|
||||
|
||||
invoke-virtual {v0, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
||||
|
||||
move-result v0
|
||||
|
||||
if-nez v0, :cond_a
|
||||
|
||||
iget-object v0, p0, Lconditions/TestComplexIf;->a:Ljava/lang/String;
|
||||
|
||||
const-string v3, "GT-P6800"
|
||||
|
||||
invoke-virtual {v0, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
||||
|
||||
move-result v0
|
||||
|
||||
if-nez v0, :cond_a
|
||||
|
||||
iget-object v0, p0, Lconditions/TestComplexIf;->a:Ljava/lang/String;
|
||||
|
||||
const-string v3, "SC-01E"
|
||||
|
||||
invoke-virtual {v0, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
||||
|
||||
move-result v0
|
||||
|
||||
if-eqz v0, :cond_2
|
||||
|
||||
goto/16 :goto_1
|
||||
|
||||
:cond_2
|
||||
iget-object v0, p0, Lconditions/TestComplexIf;->a:Ljava/lang/String;
|
||||
|
||||
const-string v3, "LG-V500"
|
||||
|
||||
invoke-virtual {v0, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
||||
|
||||
move-result v0
|
||||
|
||||
if-nez v0, :cond_a
|
||||
|
||||
iget-object v0, p0, Lconditions/TestComplexIf;->a:Ljava/lang/String;
|
||||
|
||||
const-string v3, "LG-V930"
|
||||
|
||||
invoke-virtual {v0, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
||||
|
||||
move-result v0
|
||||
|
||||
if-eqz v0, :cond_3
|
||||
|
||||
goto/16 :goto_1
|
||||
|
||||
:cond_3
|
||||
iget-object v0, p0, Lconditions/TestComplexIf;->a:Ljava/lang/String;
|
||||
|
||||
const-string v3, "P01T_1"
|
||||
|
||||
invoke-virtual {v0, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
||||
|
||||
move-result v0
|
||||
|
||||
if-nez v0, :cond_a
|
||||
|
||||
iget-object v0, p0, Lconditions/TestComplexIf;->a:Ljava/lang/String;
|
||||
|
||||
const-string v3, "P01MA"
|
||||
|
||||
invoke-virtual {v0, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
||||
|
||||
move-result v0
|
||||
|
||||
if-nez v0, :cond_a
|
||||
|
||||
iget-object v0, p0, Lconditions/TestComplexIf;->a:Ljava/lang/String;
|
||||
|
||||
const-string v3, "Nexus 9"
|
||||
|
||||
invoke-virtual {v0, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
||||
|
||||
move-result v0
|
||||
|
||||
if-nez v0, :cond_a
|
||||
|
||||
iget-object v0, p0, Lconditions/TestComplexIf;->a:Ljava/lang/String;
|
||||
|
||||
const-string v3, "ASUS_P00I"
|
||||
|
||||
invoke-virtual {v0, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
||||
|
||||
move-result v0
|
||||
|
||||
if-eqz v0, :cond_4
|
||||
|
||||
goto :goto_1
|
||||
|
||||
:cond_4
|
||||
iget-object v0, p0, Lconditions/TestComplexIf;->a:Ljava/lang/String;
|
||||
|
||||
const-string v3, "Lenovo YT3-X90X"
|
||||
|
||||
invoke-virtual {v0, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
||||
|
||||
move-result v0
|
||||
|
||||
if-nez v0, :cond_a
|
||||
|
||||
iget-object v0, p0, Lconditions/TestComplexIf;->a:Ljava/lang/String;
|
||||
|
||||
const-string v3, "Lenovo YT-X703F"
|
||||
|
||||
invoke-virtual {v0, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
||||
|
||||
move-result v0
|
||||
|
||||
if-eqz v0, :cond_5
|
||||
|
||||
goto :goto_1
|
||||
|
||||
:cond_5
|
||||
iget-object v0, p0, Lconditions/TestComplexIf;->a:Ljava/lang/String;
|
||||
|
||||
const-string v3, "PMT3408_4G"
|
||||
|
||||
invoke-virtual {v0, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
||||
|
||||
move-result v0
|
||||
|
||||
if-eqz v0, :cond_6
|
||||
|
||||
return v2
|
||||
|
||||
:cond_6
|
||||
iget-object v0, p0, Lconditions/TestComplexIf;->a:Ljava/lang/String;
|
||||
|
||||
const-string v3, "MediaPad T2 10.0 Pro"
|
||||
|
||||
invoke-virtual {v0, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
||||
|
||||
move-result v0
|
||||
|
||||
if-eqz v0, :cond_7
|
||||
|
||||
return v2
|
||||
|
||||
:cond_7
|
||||
iget-object v0, p0, Lconditions/TestComplexIf;->b:I
|
||||
|
||||
and-int/lit8 v0, v0, 0xf
|
||||
|
||||
const/4 v3, 0x4
|
||||
|
||||
if-ne v0, v3, :cond_8
|
||||
|
||||
const/4 v0, 0x1
|
||||
|
||||
goto :goto_0
|
||||
|
||||
:cond_8
|
||||
const/4 v0, 0x0
|
||||
|
||||
:goto_0
|
||||
iget v3, p0, Lconditions/TestComplexIf;->c:F
|
||||
|
||||
const/high16 v4, 0x43200000 # 160.0f
|
||||
|
||||
cmpl-float v3, v3, v4
|
||||
|
||||
if-lez v3, :cond_9
|
||||
|
||||
return v1
|
||||
|
||||
:cond_9
|
||||
iget v3, p0, Lconditions/TestComplexIf;->c:F
|
||||
|
||||
const/4 v4, 0x0
|
||||
|
||||
cmpg-float v3, v3, v4
|
||||
|
||||
if-gtz v3, :cond_a
|
||||
|
||||
if-eqz v0, :cond_a
|
||||
|
||||
return v1
|
||||
|
||||
:cond_a
|
||||
:goto_1
|
||||
return v2
|
||||
|
||||
:cond_b
|
||||
:goto_2
|
||||
return v1
|
||||
.end method
|
||||
Reference in New Issue
Block a user