Fix method signature

This commit is contained in:
LoveSy 2023-01-08 16:17:00 +08:00 committed by LoveSy
parent 4768d6cba4
commit 6b03c6397a
2 changed files with 8 additions and 7 deletions

View File

@ -661,9 +661,10 @@ namespace lspd {
env->SetIntArrayRegion(annotations, 0, env->SetIntArrayRegion(annotations, 0,
static_cast<jint>(field_annotations.size()), static_cast<jint>(field_annotations.size()),
field_annotations.data()); field_annotations.data());
stopped = env->CallBooleanMethod(member_visitor, visit_field, field_idx, env->CallVoidMethod(member_visitor, visit_field, field_idx,
access_flags, annotations); access_flags, annotations);
env->DeleteLocalRef(annotations); env->DeleteLocalRef(annotations);
stopped = env->CallBooleanMethod(member_visitor, stop);
if (stopped == JNI_TRUE) break; if (stopped == JNI_TRUE) break;
} }
if (stopped == JNI_TRUE) break; if (stopped == JNI_TRUE) break;

View File

@ -105,19 +105,19 @@ public interface DexParser extends Closeable {
Array[] getArrays(); Array[] getArrays();
interface EarlyStopVisitor { interface EarlyStopVisitor {
void stop(); boolean stop();
} }
interface MemberVisitor extends EarlyStopVisitor { interface MemberVisitor extends EarlyStopVisitor {
} }
interface ClassVisitor { interface ClassVisitor extends EarlyStopVisitor {
@Nullable @Nullable
MemberVisitor visit(int clazz, int accessFlags, int superClass, @NonNull int[] interfaces, int sourceFile, @NonNull int[] staticFields, @NonNull int[] staticFieldsAccessFlags, @NonNull int[] instanceFields, @NonNull int[] instanceFieldsAccessFlags, @NonNull int[] directMethods, @NonNull int[] directMethodsAccessFlags, @NonNull int[] virtualMethods, @NonNull int[] virtualMethodsAccessFlags, @NonNull int[] annotations); MemberVisitor visit(int clazz, int accessFlags, int superClass, @NonNull int[] interfaces, int sourceFile, @NonNull int[] staticFields, @NonNull int[] staticFieldsAccessFlags, @NonNull int[] instanceFields, @NonNull int[] instanceFieldsAccessFlags, @NonNull int[] directMethods, @NonNull int[] directMethodsAccessFlags, @NonNull int[] virtualMethods, @NonNull int[] virtualMethodsAccessFlags, @NonNull int[] annotations);
} }
interface FieldVisitor extends MemberVisitor { interface FieldVisitor extends MemberVisitor {
boolean visit(int field, int accessFlags, @NonNull int[] annotations); void visit(int field, int accessFlags, @NonNull int[] annotations);
} }
interface MethodVisitor extends MemberVisitor { interface MethodVisitor extends MemberVisitor {
@ -125,8 +125,8 @@ public interface DexParser extends Closeable {
MethodBodyVisitor visit(int method, int accessFlags, boolean hasBody, @NonNull int[] annotations, @NonNull int[] parameterAnnotations); MethodBodyVisitor visit(int method, int accessFlags, boolean hasBody, @NonNull int[] annotations, @NonNull int[] parameterAnnotations);
} }
interface MethodBodyVisitor extends MemberVisitor { interface MethodBodyVisitor {
boolean visit(int method, int accessFlags, @NonNull int[] referredStrings, @NonNull int[] invokedMethods, @NonNull int[] accessedFields, @NonNull int[] assignedFields, @NonNull byte[] opcodes); void visit(int method, int accessFlags, @NonNull int[] referredStrings, @NonNull int[] invokedMethods, @NonNull int[] accessedFields, @NonNull int[] assignedFields, @NonNull byte[] opcodes);
} }
void visitDefinedClasses(@NonNull ClassVisitor visitor) throws IllegalStateException; void visitDefinedClasses(@NonNull ClassVisitor visitor) throws IllegalStateException;