MCPcopy Create free account
hub / github.com/FabricMC/Matcher / handleMethodInvocation

Method handleMethodInvocation

src/main/java/matcher/type/Analysis.java:752–768  ·  view source on GitHub ↗
(ClassEnv env, String owner, String name, String desc, boolean itf, boolean isStatic, StateRecorder rec)

Source from the content-addressed store, hash-verified

750 }
751
752 private static void handleMethodInvocation(ClassEnv env, String owner, String name, String desc, boolean itf, boolean isStatic, StateRecorder rec) {
753 MethodInstance target = env.getClsByName(owner).resolveMethod(name, desc, itf);
754
755 for (int i = target.args.length - 1; i >= 0; i--) {
756 if (target.args[i].getType().getSlotSize() == 1) {
757 rec.pop();
758 } else {
759 rec.popDouble();
760 }
761 }
762
763 if (!isStatic) rec.pop();
764
765 if (target.getRetType() != rec.common.VOID) {
766 rec.push(target.getRetType(), rec.getNextVarId(VarSource.MethodRet));
767 }
768 }
769
770 private static boolean queueTryCatchBlocks(MethodInstance method, StateRecorder rec, Queue<QueueElement> queue, Set<QueueElement> queued) {
771 if (method.getAsmNode().tryCatchBlocks.isEmpty()) return false;

Callers 1

analyzeMethodMethod · 0.95

Calls 9

getRetTypeMethod · 0.95
getSlotSizeMethod · 0.80
popMethod · 0.80
popDoubleMethod · 0.80
pushMethod · 0.80
getNextVarIdMethod · 0.80
getClsByNameMethod · 0.65
resolveMethodMethod · 0.45
getTypeMethod · 0.45

Tested by

no test coverage detected