mirror of
https://github.com/revanced/smali.git
synced 2025-05-23 18:16:23 +02:00
converted the labels in the deodex tests to the new label format
git-svn-id: https://smali.googlecode.com/svn/trunk@492 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
This commit is contained in:
parent
a5fb30849d
commit
8555ce95d5
@ -5,15 +5,15 @@
|
||||
.method public static main([Ljava/lang/String;)V
|
||||
.registers 3
|
||||
|
||||
here4:
|
||||
:here4
|
||||
const v0, 0
|
||||
|
||||
here3:
|
||||
:here3
|
||||
|
||||
new-instance v2, Lsuperclass;
|
||||
invoke-direct {v2}, Lsuperclass;-><init>()V
|
||||
|
||||
if-eqz v0, here2:
|
||||
if-eqz v0, :here2
|
||||
|
||||
|
||||
#this is the unresolvable instruction. v0 is always null,
|
||||
@ -32,42 +32,42 @@
|
||||
#a branch to outside the dead code. The branch label should not
|
||||
#be commented out, because there is a non-dead instruction
|
||||
#that branches to it
|
||||
if-eqz v0, here2:
|
||||
if-eqz v0, :here2
|
||||
|
||||
|
||||
#a branch to inside the dead code. the branch label should be
|
||||
#commented out
|
||||
if-eqz v0, here:
|
||||
if-eqz v0, :here
|
||||
|
||||
#another branch to outside the dead code. In this case, the "dead"
|
||||
#instruction is the first instruction that references the label.
|
||||
#the label should not be commented out, because it is referenced
|
||||
#be a non-dead instruction
|
||||
if-eqz v0, here3:
|
||||
if-eqz v0, :here3
|
||||
|
||||
#one more branch to out the dead code. the branch label should be
|
||||
#commented out, because there are no other non-dead instructions
|
||||
#referenceding it
|
||||
if-eqz v0, here4:
|
||||
if-eqz v0, :here4
|
||||
|
||||
#another odexed instruction that uses the result of the
|
||||
#first unresolveable odex instruction. this should
|
||||
#appear as a commented invoke-virtual-quick instruction
|
||||
invoke-virtual {v1}, Lsuperclass;->somemethod()V
|
||||
|
||||
here:
|
||||
:here
|
||||
|
||||
#a resolveable odex instruction in the dead code. It should be resolved,
|
||||
#but still commented out
|
||||
invoke-virtual {v2}, Lsuperclass;->somemethod()V
|
||||
|
||||
|
||||
here2:
|
||||
:here2
|
||||
|
||||
#and we're back to the non-dead code
|
||||
invoke-virtual {v2}, Lsuperclass;->somemethod()V
|
||||
|
||||
if-nez v0, here3:
|
||||
if-nez v0, :here3
|
||||
|
||||
|
||||
return-void
|
||||
|
@ -15,12 +15,12 @@
|
||||
invoke-direct {v0}, Lsubclass1;-><init>()V
|
||||
aput-object v0, v1, v4
|
||||
|
||||
goto here2:
|
||||
goto :here2
|
||||
|
||||
here:
|
||||
:here
|
||||
const v2, 1
|
||||
|
||||
here2:
|
||||
:here2
|
||||
|
||||
#this is tricky, because it has to merge two array types, [Lsubclass1; and [Lsubclass2
|
||||
#which should result in [Lsuperclass;. However, this dex file won't have a reference
|
||||
@ -35,7 +35,7 @@
|
||||
invoke-direct {v0}, Lsubclass2;-><init>()V
|
||||
aput-object v0, v1, v4
|
||||
|
||||
if-eqz v2, here:
|
||||
if-eqz v2, :here
|
||||
|
||||
return-void
|
||||
.end method
|
Loading…
x
Reference in New Issue
Block a user