mirror of
https://github.com/revanced/smali.git
synced 2025-05-09 10:54:29 +02:00
Allow arbitrary method names in <>
Kotlin is known to use <anonymous>
This commit is contained in:
parent
cf45978c6a
commit
2a206e6f85
@ -3128,7 +3128,7 @@ public class MethodAnalyzer {
|
||||
TypeIdItem methodClass = methodIdItem.getContainingClass();
|
||||
boolean isInit = false;
|
||||
|
||||
if (methodIdItem.getMethodName().getStringValue().charAt(0) == '<') {
|
||||
if (methodIdItem.getMethodName().getStringValue().equals("<init>")) {
|
||||
if ((invokeType & INVOKE_DIRECT) != 0) {
|
||||
isInit = true;
|
||||
} else {
|
||||
|
@ -631,7 +631,7 @@ Type = {PrimitiveType} | {ClassDescriptor} | {ArrayDescriptor}
|
||||
{PrimitiveType} {PrimitiveType}+ { return newToken(PARAM_LIST_OR_ID); }
|
||||
{Type} {Type}+ { return newToken(PARAM_LIST); }
|
||||
{SimpleName} { return newToken(SIMPLE_NAME); }
|
||||
"<init>" | "<clinit>" { return newToken(METHOD_NAME); }
|
||||
"<" {SimpleName} ">" { return newToken(METHOD_NAME); }
|
||||
}
|
||||
|
||||
/*Symbols/Whitespace/EOF*/
|
||||
|
@ -46,3 +46,4 @@ L[Ljava/lang/String;
|
||||
[;
|
||||
|
||||
<linit>
|
||||
<anonymous>
|
@ -45,4 +45,5 @@ INVALID_TOKEN("[") VOID_TYPE("V")
|
||||
INVALID_TOKEN("[") SIMPLE_NAME("java") INVALID_TOKEN("/") SIMPLE_NAME("lang") INVALID_TOKEN("/") SIMPLE_NAME("String") INVALID_TOKEN(";")
|
||||
INVALID_TOKEN("[") INVALID_TOKEN(";")
|
||||
|
||||
INVALID_TOKEN("<") SIMPLE_NAME("linit") INVALID_TOKEN(">")
|
||||
METHOD_NAME("<linit>")
|
||||
METHOD_NAME("<anonymous>")
|
||||
|
Loading…
x
Reference in New Issue
Block a user