refactor: add method info caching to speed up initial loading

This commit is contained in:
Skylot
2020-08-07 17:38:08 +01:00
parent 1560284831
commit 7fed5534eb
20 changed files with 233 additions and 89 deletions
@@ -7,16 +7,11 @@ import org.jetbrains.annotations.Nullable;
import jadx.api.plugins.input.data.annotations.IAnnotation;
public interface IMethodData {
String getParentClassType();
String getName();
IMethodRef getMethodRef();
int getAccessFlags();
String getReturnType();
List<String> getArgTypes();
boolean isDirect();
@Nullable
@@ -0,0 +1,21 @@
package jadx.api.plugins.input.data;
import java.util.List;
public interface IMethodRef {
int getUniqId();
/**
* Lazy loading for method info, until load() is called only getUniqId() can be used
*/
void load();
String getParentClassType();
String getName();
String getReturnType();
List<String> getArgTypes();
}
@@ -3,7 +3,7 @@ package jadx.api.plugins.input.insns;
import org.jetbrains.annotations.Nullable;
import jadx.api.plugins.input.data.IFieldData;
import jadx.api.plugins.input.data.IMethodData;
import jadx.api.plugins.input.data.IMethodRef;
import jadx.api.plugins.input.insns.custom.ICustomPayload;
public interface InsnData {
@@ -34,7 +34,7 @@ public interface InsnData {
IFieldData getIndexAsField();
IMethodData getIndexAsMethod();
IMethodRef getIndexAsMethod();
@Nullable
ICustomPayload getPayload();