asm merge requestshttps://gitlab.ow2.org/asm/asm/-/merge_requests2018-01-10T17:22:42Zhttps://gitlab.ow2.org/asm/asm/-/merge_requests/89Type variables extending other variables should include the separator2018-01-10T17:22:42ZJonas KonradType variables extending other variables should include the separatorThis bug can be reproduced by parsing this class file ( https://javap.yawk.at/#AQClFr ):
```
public class Main<T, R extends T> {
}
```
This produces the type signature `<T:Ljava/lang/Object;R:TT;>Ljava/lang/Object;`. This was previousl...This bug can be reproduced by parsing this class file ( https://javap.yawk.at/#AQClFr ):
```
public class Main<T, R extends T> {
}
```
This produces the type signature `<T:Ljava/lang/Object;R:TT;>Ljava/lang/Object;`. This was previously parsed as `<T, RT>` - this fix adds the separator, making it `<T, R extends T>`.https://gitlab.ow2.org/asm/asm/-/merge_requests/374Fix bug in CheckFrameAnalyzer with static methods.2023-05-07T15:32:17ZEric BrunetonFix bug in CheckFrameAnalyzer with static methods.Remi ForaxRemi Foraxhttps://gitlab.ow2.org/asm/asm/-/merge_requests/348Check that frames are valid for V1_7 or more classes, if COMPUTE_FRAMES is no...2022-05-22T15:36:04ZEric BrunetonCheck that frames are valid for V1_7 or more classes, if COMPUTE_FRAMES is not used.Remi ForaxRemi Foraxhttps://gitlab.ow2.org/asm/asm/-/merge_requests/347Extract a findSubroutines method from the long Analyzer.analyze() method.2022-05-26T11:57:48ZEric BrunetonExtract a findSubroutines method from the long Analyzer.analyze() method.Remi ForaxRemi Foraxhttps://gitlab.ow2.org/asm/asm/-/merge_requests/345Add a CheckFrameAnalyzer class in asm-util. This will be used in...2022-11-03T09:49:08ZEric BrunetonAdd a CheckFrameAnalyzer class in asm-util. This will be used in...Add a CheckFrameAnalyzer class in asm-util. This will be used in CheckClassAdapter to check frames if they are required and not computed with COMPUTE_FRAMES.Add a CheckFrameAnalyzer class in asm-util. This will be used in CheckClassAdapter to check frames if they are required and not computed with COMPUTE_FRAMES.Remi ForaxRemi Foraxhttps://gitlab.ow2.org/asm/asm/-/merge_requests/335Remove the restrictions for the checkDataFlow option in CheckClassAdapter.2022-03-19T20:14:01ZEric BrunetonRemove the restrictions for the checkDataFlow option in CheckClassAdapter.Remi ForaxRemi Foraxhttps://gitlab.ow2.org/asm/asm/-/merge_requests/327Remap invokedynamic field handles properly2021-09-19T09:21:45ZJamie MansfieldRemap invokedynamic field handles properlyThis was discovered attempting to remap record classes from Java 16 - where we were getting calls to #mapMethodName with field descriptors.
This should resolve #317954.This was discovered attempting to remap record classes from Java 16 - where we were getting calls to #mapMethodName with field descriptors.
This should resolve #317954.https://gitlab.ow2.org/asm/asm/-/merge_requests/310Resolve "ClassRemapper doesn't remap annotation values"2021-01-28T18:39:17ZEric BrunetonResolve "ClassRemapper doesn't remap annotation values"Closes #317929Closes #317929Remi ForaxRemi Foraxhttps://gitlab.ow2.org/asm/asm/-/merge_requests/307Add support for jdk 17 (V17)2021-01-12T23:25:01ZRemi ForaxAdd support for jdk 17 (V17)Add support for jdk 17 (V17) also fix some typos (stuff) and refactor Arrays.asList(array).stream() to Arrays.stream(array)Add support for jdk 17 (V17) also fix some typos (stuff) and refactor Arrays.asList(array).stream() to Arrays.stream(array)Eric BrunetonEric Brunetonhttps://gitlab.ow2.org/asm/asm/-/merge_requests/305Add an analyzeAndComputeMaxs() method in Analyzer.2020-12-21T09:25:08ZEric BrunetonAdd an analyzeAndComputeMaxs() method in Analyzer.Closes #317921Closes #317921Remi ForaxRemi Foraxhttps://gitlab.ow2.org/asm/asm/-/merge_requests/290Resolve "ASM throws ArrayIndexOutOfBoundsException when processing kotlin cla...2020-06-13T09:20:42ZEric BrunetonResolve "ASM throws ArrayIndexOutOfBoundsException when processing kotlin class file using both Inline Function and Multiplatform Project"Closes #317904Closes #317904Remi ForaxRemi Foraxhttps://gitlab.ow2.org/asm/asm/-/merge_requests/267Fix infinite loop with invalid arguments.2019-07-15T18:02:49ZEric BrunetonFix infinite loop with invalid arguments.Closes #317875. Note: this is the only refactoring I found which preserves performance (measured with the jmh TypeBenchmark benchmark).Closes #317875. Note: this is the only refactoring I found which preserves performance (measured with the jmh TypeBenchmark benchmark).Remi ForaxRemi Foraxhttps://gitlab.ow2.org/asm/asm/-/merge_requests/136Update to Gradle 4.6, which now has native support for JUnit5.2018-03-11T08:29:49ZEric BrunetonUpdate to Gradle 4.6, which now has native support for JUnit5.Remi ForaxRemi Foraxhttps://gitlab.ow2.org/asm/asm/-/merge_requests/4Fix the handling of inner classes with EXPAND_ASM_INSNS.2017-09-07T19:25:28ZEric BrunetonFix the handling of inner classes with EXPAND_ASM_INSNS.Resetting the inner class data structures so that they are rebuilt when revisiting the code with a ClassReader does not work, due to the code in visitInnerClass to avoid duplicate entries in this table (based on state stored in the const...Resetting the inner class data structures so that they are rebuilt when revisiting the code with a ClassReader does not work, due to the code in visitInnerClass to avoid duplicate entries in this table (based on state stored in the constant pool entries, which are not reset). In fact, thanks to this code to avoid duplicate entries, we can skip resetting the inner class data structures here, and be assured that they will not change when revisiting the class with a ClassReader.
Closes #317792Remi ForaxRemi Foraxhttps://gitlab.ow2.org/asm/asm/-/merge_requests/3Remove the optimizer and the asm-all and asm-debug-all jars.2017-09-07T19:28:34ZEric BrunetonRemove the optimizer and the asm-all and asm-debug-all jars.The jar size is no longer an issue for the vast majority of the ASM users, unlike the lack of debug info in the default jars. This changes keeps the debug info in the default jars by removing the optimizer. The asm-debug-all jars is then...The jar size is no longer an issue for the vast majority of the ASM users, unlike the lack of debug info in the default jars. This changes keeps the debug info in the default jars by removing the optimizer. The asm-debug-all jars is then no longer necessary, and is thus removed.
Similarly, maintaining compatibility with the JDK 1.3 is no longer necessary (it is unsupported since a long time). Instead, this change uses the JDK 1.5 as the new baseline. This is now striclty enforced (the build will fail if a more recent API is used internally), for all jars (previously different jars were using different baseline APIs).
This change also updates the sigtest tool, which uses a slightly different format to store API descriptions.Remi ForaxRemi Foraxhttps://gitlab.ow2.org/asm/asm/-/merge_requests/388ASM Analyzer: fix regression introduced in fix of bug #317991.2023-12-21T12:17:45ZEric BrunetonASM Analyzer: fix regression introduced in fix of bug #317991.Closes #318009Closes #318009Remi ForaxRemi Foraxhttps://gitlab.ow2.org/asm/asm/-/merge_requests/387Fix some issues reported by Gradle about the build script2023-12-11T12:52:41ZRemi ForaxFix some issues reported by Gradle about the build scriptUpgrade JMH plugin, move source/target compat under the java plugin.
Gradle still reports that the project asm-test defines the test launcher implicitly and I have no idea why.Upgrade JMH plugin, move source/target compat under the java plugin.
Gradle still reports that the project asm-test defines the test launcher implicitly and I have no idea why.Eric BrunetonEric Brunetonhttps://gitlab.ow2.org/asm/asm/-/merge_requests/386Change the build file to use spotless so the build works with Java 17 and Jav...2023-12-11T11:26:02ZRemi ForaxChange the build file to use spotless so the build works with Java 17 and Java 21Change the build file to replace 'com.github.sherter.google-java-format' by spotless.
Spotless executes the jar of google-java-format as a subprocess instead of using the VM that is running the build.
So we can now have a buid that run ...Change the build file to replace 'com.github.sherter.google-java-format' by spotless.
Spotless executes the jar of google-java-format as a subprocess instead of using the VM that is running the build.
So we can now have a buid that run with Java 11, Java 17 and Java 21.
Theoritically, the build should be a little slower but, in practice, i am not able to see any effects thanks to gradle being multithreaded.
Spotless error message is also better, instead of just saying that a file is not correctly formatted, it prints the diff between the file and the file once formatted.Eric BrunetonEric Brunetonhttps://gitlab.ow2.org/asm/asm/-/merge_requests/385Use Java 11 features when it makes the code better2023-12-11T07:21:03ZRemi ForaxUse Java 11 features when it makes the code betterThis change tests to use immutable List.of()/Set.of()/Map.of() whenever it's possible, so the contract is more clear,
There are other small changes that are just me reading the code and finding things like useless catch, code can be sim...This change tests to use immutable List.of()/Set.of()/Map.of() whenever it's possible, so the contract is more clear,
There are other small changes that are just me reading the code and finding things like useless catch, code can be simplified, etcEric BrunetonEric Brunetonhttps://gitlab.ow2.org/asm/asm/-/merge_requests/384Change the retofitter to be able to rewrite Java 11 bytecode2023-12-10T14:56:44ZRemi ForaxChange the retofitter to be able to rewrite Java 11 bytecodeIt's time to stop using Java 8 as the source version and at least move to Java 11.
I've modified the retrofitter
- so all string concatenations that use invokedynamic since Java 9 are rewritten to use a StringBuilder
(each string buil...It's time to stop using Java 8 as the source version and at least move to Java 11.
I've modified the retrofitter
- so all string concatenations that use invokedynamic since Java 9 are rewritten to use a StringBuilder
(each string builder is isolated to its own static method which is easier to write AND should perform better
because most of our allocation are inside the call to a constructor of an exception).
- to add a new verifier pass that check that we can safely remove the nestmate attributes (NestHost, NestMembers)
Since Java 11, the compiler can directly reference a private member from a nested class without adding an access$ method
using the nestmate attributes instead. Given we want to remove those attributes, the new verifier pass check that
this is safe but not allowing a class to reference a private member from another class.Eric BrunetonEric Bruneton