From 097ebfeb9b3c47063c8b786ce1fe8221b30b7383 Mon Sep 17 00:00:00 2001 From: Su5eD Date: Sun, 2 Jun 2024 20:40:05 +0200 Subject: [PATCH] Remove inaccurate local variable update code --- .../transformer/dynamic/DynamicInjectorOrdinalPatch.java | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/definition/src/main/java/org/sinytra/adapter/patch/transformer/dynamic/DynamicInjectorOrdinalPatch.java b/definition/src/main/java/org/sinytra/adapter/patch/transformer/dynamic/DynamicInjectorOrdinalPatch.java index a1375d2..0948dae 100644 --- a/definition/src/main/java/org/sinytra/adapter/patch/transformer/dynamic/DynamicInjectorOrdinalPatch.java +++ b/definition/src/main/java/org/sinytra/adapter/patch/transformer/dynamic/DynamicInjectorOrdinalPatch.java @@ -349,15 +349,8 @@ private static Optional tryFindUpdatedIndex(Type targetType, MethodCon if (dirtyNameOrdinal.isEmpty() || local.relative() && ordinal == dirtyNameOrdinal.getAsInt()) { return Optional.empty(); } - List actual = dirtyLocals.stream() - .filter(lvn -> GeneratedVariables.getGeneratedVariableOrdinal(lvn.name, Type.getType(lvn.desc)).orElse(-1) == ordinal) - .toList(); - if (actual.size() == 1) { - LocalVariableNode lvn = actual.get(0); - return Optional.of(new LocalVar(lvn, dirtyLocals.indexOf(lvn))); - } - if (cleanLocal.index != dirtyLocal.index) { + if (cleanLocal.index != dirtyLocal.index && !local.relative()) { return Optional.of(new LocalVar(dirtyLocal, dirtyLocals.indexOf(dirtyLocal))); }