Allow arbitrary bracketed member names

Dalvik allows accesses and definitions of fields with angle brackets

It "allows" definitions of bracketed method names, but it will reject any
attempt to actually call them (except <init>, of course).
This commit is contained in:
Ben Gruver
2013-09-14 13:10:59 -07:00
parent 45b8a4dae8
commit 569c014562
3 changed files with 55 additions and 15 deletions

View File

@ -0,0 +1,40 @@
.class public LBracketedMemberNames;
.super Ljava/lang/Object;
.field public static <test_field>:Ljava/lang/String; = "Hello World!"
.method public static main([Ljava/lang/String;)V
.registers 2
invoke-static {}, LBracketedMemberNames;->test_method()V
return-void
.end method
.method public static test_method()V
.registers 2
sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
sget-object v1, LBracketedMemberNames;-><test_field>:Ljava/lang/String;
invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V
return-void
.end method
.method public static <test_method>()V
.registers 2
sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
sget-object v1, LBracketedMemberNames;-><test_field>:Ljava/lang/String;
invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V
# this will cause a verification error
invoke-static {}, LBracketedMemberNames;-><test_method>()V
return-void
.end method