User: joe Date: 02 Jan 26 20:43 Revision: 84a37d07e41f99793d0b1d465a0b0a0f9ae10cd7 Summary: Use correct index for parameter names TeamCity URL: http://ci.mcdev.io:80/viewModification.html?tab=vcsModificationFiles&modId=10383&personal=false Index: src/main/kotlin/platform/mixin/util/LocalInfo.kt =================================================================== --- src/main/kotlin/platform/mixin/util/LocalInfo.kt (revision 1fcf7c7b85e22923d9e84691afaf78de6805e074) +++ src/main/kotlin/platform/mixin/util/LocalInfo.kt (revision 84a37d07e41f99793d0b1d465a0b0a0f9ae10cd7) @@ -53,15 +53,13 @@ ): Array? { return if (argsOnly) { val args = mutableListOf() - var index = 0 if (!methodNode.hasAccess(Opcodes.ACC_STATIC)) { val thisDesc = Type.getObjectType(targetClass.name).descriptor args.add(LocalVariables.LocalVariable("this", thisDesc, null, null, null, 0)) - index++ } for (argType in Type.getArgumentTypes(methodNode.desc)) { val hasNamedArguments = module.fabricMixinCompatibility?.let { it >= 17000 } == true - val localName = methodNode.localVariables?.find { it.index == index }?.name + val localName = methodNode.localVariables?.find { it.index == args.size }?.name val name = if (localName != null && hasNamedArguments) { localName } else { @@ -73,7 +71,6 @@ if (argType.size == 2) { args.add(null) } - index++ } args.toTypedArray() } else { Index: src/main/kotlin/platform/mixin/util/LocalVariables.kt =================================================================== --- src/main/kotlin/platform/mixin/util/LocalVariables.kt (revision 1fcf7c7b85e22923d9e84691afaf78de6805e074) +++ src/main/kotlin/platform/mixin/util/LocalVariables.kt (revision 84a37d07e41f99793d0b1d465a0b0a0f9ae10cd7) @@ -441,17 +441,15 @@ val frames = method.instructions.iterator().asSequence().filterIsInstance().toList() val frame = arrayOfNulls(method.maxLocals) var local = 0 - var staticOffset = 0 // Initialise implicit "this" reference in non-static methods if (!method.hasAccess(Opcodes.ACC_STATIC)) { frame[local++] = LocalVariable("this", Type.getObjectType(classNode.name).toString(), null, null, null, 0) - staticOffset = 1 } // Initialise method arguments for ((index, argType) in Type.getArgumentTypes(method.desc).withIndex()) { - val localName = method.localVariables?.find { it.index == index + staticOffset }?.name + val localName = method.localVariables?.find { it.index == local }?.name val name = if (localName == null || !settings.namedParameters) { "arg$index" } else {