From 305e6b3d1acb35f55d91ac1c2b2dd1287a7e8efd Mon Sep 17 00:00:00 2001 From: IotaBread Date: Fri, 29 Dec 2023 18:02:57 -0300 Subject: [PATCH] Fix bytecode tokens on array descriptors --- .../quiltmc/enigma/impl/source/bytecode/EnigmaTextifier.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/enigma/src/main/java/org/quiltmc/enigma/impl/source/bytecode/EnigmaTextifier.java b/enigma/src/main/java/org/quiltmc/enigma/impl/source/bytecode/EnigmaTextifier.java index c689792a9..7a013df3b 100644 --- a/enigma/src/main/java/org/quiltmc/enigma/impl/source/bytecode/EnigmaTextifier.java +++ b/enigma/src/main/java/org/quiltmc/enigma/impl/source/bytecode/EnigmaTextifier.java @@ -425,8 +425,9 @@ private void addToken(List tokens, String text, int tokenStart, Qu } else if (queuedToken instanceof QueuedToken.Reference r) { tokens.add(new PartialToken(tokenStart, text, r.entry, r.context)); } else if (queuedToken instanceof QueuedToken.Descriptor d) { - var clazz = d.descriptor.substring(d.descriptor.indexOf('L') + 1, d.descriptor.length() - 1); - tokens.add(new PartialToken(tokenStart + 1, clazz, new BytecodeClassEntry(clazz), null)); + int clazzStart = d.descriptor.indexOf('L') + 1; + var clazz = d.descriptor.substring(clazzStart, d.descriptor.length() - 1); + tokens.add(new PartialToken(tokenStart + clazzStart, clazz, new BytecodeClassEntry(clazz), null)); } else if (queuedToken instanceof QueuedToken.MethodDescriptor d) { for (int i = 1; i < d.descriptor.length(); i++) { char c = d.descriptor.charAt(i);