mirror of
https://github.com/revanced/smali.git
synced 2025-05-05 17:14:25 +02:00
added another deodex test case
git-svn-id: https://smali.googlecode.com/svn/trunk@453 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
This commit is contained in:
parent
61eedba1ab
commit
cf4e7ce360
41
baksmali/src/test/smali/deodex_test2/app_classes/main.smali
Normal file
41
baksmali/src/test/smali/deodex_test2/app_classes/main.smali
Normal file
@ -0,0 +1,41 @@
|
||||
.class public Lmain;
|
||||
|
||||
.super Ljava/lang/Object;
|
||||
|
||||
.method public static main([Ljava/lang/String;)V
|
||||
.registers 6
|
||||
|
||||
const v2, 0
|
||||
|
||||
|
||||
const v3, 1
|
||||
const v4, 0
|
||||
new-array v1, v3, [Lsubclass1;
|
||||
new-instance v0, Lsubclass1;
|
||||
invoke-direct {v0}, Lsubclass1;-><init>()V
|
||||
aput-object v0, v1, v4
|
||||
|
||||
goto here2:
|
||||
|
||||
here:
|
||||
const v2, 1
|
||||
|
||||
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
|
||||
#to [Lsuperclass;
|
||||
aget-object v5, v1, v4
|
||||
|
||||
invoke-virtual {v5}, Lsupersuperclass;->somemethod()V
|
||||
|
||||
|
||||
new-array v1, v3, [Lsubclass2;
|
||||
new-instance v0, Lsubclass2;
|
||||
invoke-direct {v0}, Lsubclass2;-><init>()V
|
||||
aput-object v0, v1, v4
|
||||
|
||||
if-eqz v2, here:
|
||||
|
||||
return-void
|
||||
.end method
|
@ -0,0 +1,18 @@
|
||||
.class public Lrandomclass;
|
||||
|
||||
.super Ljava/lang/Object;
|
||||
|
||||
.method public constructor <init>()V
|
||||
.registers 1
|
||||
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
|
||||
return-void
|
||||
.end method
|
||||
|
||||
.method public getSuperclass()Lsuperclass;
|
||||
.registers 2
|
||||
|
||||
new-instance v0, Lsuperclass;
|
||||
invoke-direct {v0}, Lsuperclass;-><init>()V
|
||||
|
||||
return-object v0
|
||||
.end method
|
@ -0,0 +1,21 @@
|
||||
.class public Lsubclass1;
|
||||
|
||||
.super Lsuperclass;
|
||||
|
||||
.method public constructor <init>()V
|
||||
.registers 1
|
||||
invoke-direct {p0}, Lsuperclass;-><init>()V
|
||||
return-void
|
||||
.end method
|
||||
|
||||
.method public somemethod()V
|
||||
.registers 2
|
||||
|
||||
sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
|
||||
|
||||
const-string v1, "subclass1.somemethod"
|
||||
|
||||
invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V
|
||||
|
||||
return-void
|
||||
.end method
|
@ -0,0 +1,21 @@
|
||||
.class public Lsubclass2;
|
||||
|
||||
.super Lsuperclass;
|
||||
|
||||
.method public constructor <init>()V
|
||||
.registers 1
|
||||
invoke-direct {p0}, Lsuperclass;-><init>()V
|
||||
return-void
|
||||
.end method
|
||||
|
||||
.method public somemethod()V
|
||||
.registers 2
|
||||
|
||||
sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
|
||||
|
||||
const-string v1, "subclass2.somemethod"
|
||||
|
||||
invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V
|
||||
|
||||
return-void
|
||||
.end method
|
@ -0,0 +1,21 @@
|
||||
.class public Lsuperclass;
|
||||
|
||||
.super Lsupersuperclass;
|
||||
|
||||
.method public constructor <init>()V
|
||||
.registers 1
|
||||
invoke-direct {p0}, Lsupersuperclass;-><init>()V
|
||||
return-void
|
||||
.end method
|
||||
|
||||
.method public somemethod()V
|
||||
.registers 2
|
||||
|
||||
sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
|
||||
|
||||
const-string v1, "superclass.somemethod"
|
||||
|
||||
invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V
|
||||
|
||||
return-void
|
||||
.end method
|
@ -0,0 +1,21 @@
|
||||
.class public Lsupersuperclass;
|
||||
|
||||
.super Ljava/lang/Object;
|
||||
|
||||
.method public constructor <init>()V
|
||||
.registers 1
|
||||
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
|
||||
return-void
|
||||
.end method
|
||||
|
||||
.method public somemethod()V
|
||||
.registers 2
|
||||
|
||||
sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
|
||||
|
||||
const-string v1, "supersuperclass.somemethod"
|
||||
|
||||
invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V
|
||||
|
||||
return-void
|
||||
.end method
|
Loading…
x
Reference in New Issue
Block a user