Large arrays (~100+ elements) are not properly typed
@Jonathing ci sta già lavorando.
Dal 14/1/2025.
Valutazione
Questa issue non è ancora stata valutata.
Descrizione
This is actually a Nashorn bug, but I'd like to workaround it in CoreMods 5.3. Essentially, large arrays (either created with [] or with varargs) are not converted to the required type, but rather to Object[]. This is a problem particularly for ASMAPI.listOf(), which uses a varargs signature of ([Lorg/objectweb/asm/tree/AbstractInsnNode;). When the coremod script is evaluated by Nashorn, the script fails with a ClassCastException: cannot cast [Ljava/lang/Object;] to org/objectweb/asm/tree/AbstractInsnNode.
Workarounds
The easiest way to workaround this is to manually add each node to a list. For example:
const list = ASMAPI.listOf();
list.add(node1);
list.add(node2);
// ...
However, another workaround is to use Java.to() to convert the entire array into your desired type. For example:
method.instructions = ASMAPI.listOf(Java.to([
// ...
], Java.type('org.objectweb.asm.tree.AbstractInsnNode[]')));
Solution(?)
A solution to workaround this in CoreMods would be to create a sister method ASMAPI.listOf(Object... nodes) which accepts varargs object. Though, it might have a performance impact due to needing to cast each node to AbstractInsnNode. We can realistically skip the instanceof check since coremods should never attempt to add other objects that aren't nodes to an InsnList.
- Lingua principale
- Java
- Stelle
- 39
- Fork
- 23
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di MinecraftForge/coremods
-
Builds dont get promotedForse di nuovo libera @Jonathing l’ha presa 265 giorni fa e non c’è nessuna pull request aperta. Aperta
MinecraftForge/coremods#74 · 1 assegnatario ·
-
Invoke Dynamic instructions cannot be searched using ASMAPIForse di nuovo libera @Jonathing l’ha presa 584 giorni fa e non c’è nessuna pull request aperta. Aperta
MinecraftForge/coremods#72 · 1 assegnatario ·
Tutte le issue di MinecraftForge/coremods
Issue simili
-
status: team-only type: dependency-upgrade
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
spring-projects/spring-boot#52099 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 67/100
tchiotludo/akhq#3307 · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
-
status: waiting-for-triage type: bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
spring-projects/spring-security#19847 ·
I maintainer di solito rispondono entro 1 giorno
-
architecture
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
DiegoMicali/MovieFlix#16 ·
-
Bug Unverified
Difficoltà 2/5 1-3 ore Idoneità per principianti 64/100
cgeo/cgeo#18734 · 3 commenti ·
I maintainer di solito rispondono entro 1 giorno