asm merge requestshttps://gitlab.ow2.org/asm/asm/-/merge_requests2022-11-12T16:18:18Zhttps://gitlab.ow2.org/asm/asm/-/merge_requests/366missing "|" in javadoc of MethodVisitor2022-11-12T16:18:18ZFANGYUAN SImissing "|" in javadoc of MethodVisitorSigned-off-by: 司芳源 <sify21@163.com>Signed-off-by: 司芳源 <sify21@163.com>https://gitlab.ow2.org/asm/asm/-/merge_requests/365Remove duplicate articles in Javadoc2022-11-01T14:12:57ZJohnny LimRemove duplicate articles in JavadocThis PR removes duplicate articles in Javadoc.This PR removes duplicate articles in Javadoc.https://gitlab.ow2.org/asm/asm/-/merge_requests/364fix a typo in javadoc of ASMifier2022-10-25T10:21:39ZFANGYUAN SIfix a typo in javadoc of ASMifierif -> it
Signed-off-by: 司芳源 <sify21@163.com>if -> it
Signed-off-by: 司芳源 <sify21@163.com>https://gitlab.ow2.org/asm/asm/-/merge_requests/363Skip remap inner class name if not changed2022-09-17T12:47:48ZKarlatempkar@kasukusakura.comSkip remap inner class name if not changedIn some special cases, `$` exists in the name of some class.
ASM default remapper implementation leaded some assertion failed after applied remapping.
This PR added a if check to skip remapping if name not change.
--------------------...In some special cases, `$` exists in the name of some class.
ASM default remapper implementation leaded some assertion failed after applied remapping.
This PR added a if check to skip remapping if name not change.
------------------------------
For more details, see:
- https://github.com/johnrengelman/shadow/issues/792
- https://github.com/mamoe/mirai/issues/2230
The simplest reproduction is
```java
public class A {
public static class $serializer {
}
}
```
```
// class version 62.0 (62)
// access flags 0x21
public class io/github/karlatemp/jmse/A {
// compiled from: A.java
NESTMEMBER io/github/karlatemp/jmse/A$$serializer
// access flags 0x9
public static INNERCLASS io/github/karlatemp/jmse/A$$serializer io/github/karlatemp/jmse/A $serializer
// access flags 0x1
public <init>()V
// access flags 0x9
public static main([Ljava/lang/String;)V throws java/lang/Throwable
}
// class version 62.0 (62)
// access flags 0x21
public class io/github/karlatemp/jmse/A$$serializer {
// compiled from: RwB.java
NESTHOST io/github/karlatemp/jmse/A
// access flags 0x9
public static INNERCLASS io/github/karlatemp/jmse/A$$serializer io/github/karlatemp/jmse/A $serializer
// access flags 0x1
public <init>()V
}
```https://gitlab.ow2.org/asm/asm/-/merge_requests/361Fix `SignatureWriter` when a generic type has a depth over 302022-09-11T07:22:47ZExE BossFix `SignatureWriter` when a generic type has a depth over 30Previously when a generic type had a depth over 30, it would not survive a round‑trip through `SignatureWriter`, as `argumentStack` would overflow into negative numbers, which the signed `%` and `/` operators would interpret incorrectly....Previously when a generic type had a depth over 30, it would not survive a round‑trip through `SignatureWriter`, as `argumentStack` would overflow into negative numbers, which the signed `%` and `/` operators would interpret incorrectly.
The solution is to use the unsigned shift and binary operators, plus an auxiliary `List` for when the `argumentStack` would overflow a 32‑bit integer.
## Example
```
LTestGeneric<LTestOpen;LTestGeneric<LTestOpen;LTestGeneric<LTestOpen;LTestGeneric<LTestOpen;LTestGeneric<LTestOpen;LTestGeneric<LTestOpen;LTestGeneric<LTestOpen;LTestGeneric<LTestOpen;LTestGeneric<LTestOpen;LTestGeneric<LTestOpen;LTestGeneric<LTestOpen;LTestGeneric<LTestOpen;LTestGeneric<LTestOpen;LTestGeneric<LTestOpen;LTestGeneric<LTestOpen;LTestGeneric<LTestOpen;LTestGeneric<LTestOpen;LTestGeneric<LTestOpen;LTestGeneric<LTestOpen;LTestGeneric<LTestOpen;LTestGeneric<LTestOpen;LTestGeneric<LTestOpen;LTestGeneric<LTestOpen;LTestGeneric<LTestOpen;LTestGeneric<LTestOpen;LTestGeneric<LTestOpen;LTestGeneric<LTestOpen;LTestGeneric<LTestOpen;LTestGeneric<LTestOpen;LTestGeneric<LTestOpen;LTestGeneric<LTestOpen;LTestGeneric;LTestClose;>;LTestClose;>;LTestClose;>;LTestClose;>;LTestClose;>;LTestClose;>;LTestClose;>;LTestClose;>;LTestClose;>;LTestClose;>;LTestClose;>;LTestClose;>;LTestClose;>;LTestClose;>;LTestClose;>;LTestClose;>;LTestClose;>;LTestClose;>;LTestClose;>;LTestClose;>;LTestClose;>;LTestClose;>;LTestClose;>;LTestClose;>;LTestClose;>;LTestClose;>;LTestClose;>;LTestClose;>;LTestClose;>;LTestClose;>;LTestClose;>;
```
used to get malformed as:
```
LTestGeneric<LTestOpen;LTestGeneric<LTestOpen;LTestGeneric<LTestOpen;LTestGeneric<LTestOpen;LTestGeneric<LTestOpen;LTestGeneric<LTestOpen;LTestGeneric<LTestOpen;LTestGeneric<LTestOpen;LTestGeneric<LTestOpen;LTestGeneric<LTestOpen;LTestGeneric<LTestOpen;LTestGeneric<LTestOpen;LTestGeneric<LTestOpen;LTestGeneric<LTestOpen;LTestGeneric<LTestOpen;LTestGeneric<LTestOpen;LTestGeneric<LTestOpen;LTestGeneric<LTestOpen;LTestGeneric<LTestOpen;LTestGeneric<LTestOpen;LTestGeneric<LTestOpen;LTestGeneric<LTestOpen;LTestGeneric<LTestOpen;LTestGeneric<LTestOpen;LTestGeneric<LTestOpen;LTestGeneric<LTestOpen;LTestGeneric<LTestOpen;LTestGeneric<LTestOpen;LTestGeneric<LTestOpen;LTestGeneric<LTestOpen;LTestGeneric<LTestOpen;LTestGeneric;LTestClose;;<LTestClose;>;<LTestClose;>;<LTestClose;>;<LTestClose;>;<LTestClose;>;<LTestClose;>;<LTestClose;>;<LTestClose;>;<LTestClose;>;<LTestClose;>;<LTestClose;>;<LTestClose;>;<LTestClose;>;<LTestClose;>;<LTestClose;>;<LTestClose;>;<LTestClose;>;<LTestClose;>;<LTestClose;>;<LTestClose;>;<LTestClose;>;<LTestClose;>;<LTestClose;>;<LTestClose;>;<LTestClose;>;<LTestClose;>;<LTestClose;>;<LTestClose;>;<LTestClose;>;<LTestClose;>;
```https://gitlab.ow2.org/asm/asm/-/merge_requests/360Add link to Type.getInternalName() after each occurence of 'internal name' in...2022-10-01T15:33:09ZEric BrunetonAdd link to Type.getInternalName() after each occurence of 'internal name' in...Add link to Type.getInternalName() after each occurence of 'internal name' in public Javadoc comments.
Closes #317984Add link to Type.getInternalName() after each occurence of 'internal name' in public Javadoc comments.
Closes #317984Remi ForaxRemi Foraxhttps://gitlab.ow2.org/asm/asm/-/merge_requests/359Add a getDelegate() method to all visitors. Also make the delegate field prot...2022-10-01T15:53:56ZEric BrunetonAdd a getDelegate() method to all visitors. Also make the delegate field protected in all cases.Closes #317981Closes #317981Remi ForaxRemi Foraxhttps://gitlab.ow2.org/asm/asm/-/merge_requests/358Fix generated module names.2022-09-04T06:10:08ZEric BrunetonFix generated module names.Closes #317983Closes #317983Remi ForaxRemi Foraxhttps://gitlab.ow2.org/asm/asm/-/merge_requests/357Improve the Javadoc for the InnerClasses and EnclosingMethod attributes.2022-09-04T06:16:49ZEric BrunetonImprove the Javadoc for the InnerClasses and EnclosingMethod attributes.Closes #317972Closes #317972Remi ForaxRemi Foraxhttps://gitlab.ow2.org/asm/asm/-/merge_requests/356Remove biz aqute bnd gradle plugin2023-01-14T10:23:22ZEric BrunetonRemove biz aqute bnd gradle pluginThe generated Manifest are not exactly the same. For instance, from what I understand the "uses" in `Export-Package` was including only the packages appearing in the public API. It now also lists the packages used in the implementation. ...The generated Manifest are not exactly the same. For instance, from what I understand the "uses" in `Export-Package` was including only the packages appearing in the public API. It now also lists the packages used in the implementation. But I think the Manifest are still valid for OSGi. Example before/after for asm-util:
```
Export-Package: org.objectweb.asm.util;version="9.3";
uses:="org.objectweb.asm,org.objectweb.asm.signature"
Export-Package: org.objectweb.asm.util;version="9.4-SNAPSHOT";
uses:="org.objectweb.asm,org.objectweb.asm.signature,org.objectweb.asm.tree,org.objectweb.asm.tree.analysis"
```
```
Import-Package: org.objectweb.asm;version="[9.3,10)",
org.objectweb.asm.signature;version="[9.3,10)",
org.objectweb.asm.tree;version="[9.3,10)",
org.objectweb.asm.tree.analysis;version="[9.3,10)"
Import-Package: org.objectweb.asm;version="9.4-SNAPSHOT",
org.objectweb.asm.signature;version="9.4-SNAPSHOT",
org.objectweb.asm.tree;version="9.4-SNAPSHOT",
org.objectweb.asm.tree.analysis;version="9.4-SNAPSHOT"
```
Also the `Module-Requires` now lists all transitive dependencies, as the module-info classes.Eric BrunetonEric Brunetonhttps://gitlab.ow2.org/asm/asm/-/merge_requests/355Generate the module info classes without Bnd. Delete the Bnd plugin.2022-07-31T12:21:42ZEric BrunetonGenerate the module info classes without Bnd. Delete the Bnd plugin.Closes #317979Closes #317979Eric BrunetonEric Brunetonhttps://gitlab.ow2.org/asm/asm/-/merge_requests/354Upgrade asm to point to org.ow2:ow2:1.5.12022-07-24T14:42:37ZAurimas LiutikasUpgrade asm to point to org.ow2:ow2:1.5.1org.ow2:ow2:1.5 has unsigned artifacts, which forces users of asm that
have signature verification on to allowlist
ow2. This change upgrades the dependency to 1.5.1
which is signed.
Compare (see .asc files):
https://repo1.maven.org/mave...org.ow2:ow2:1.5 has unsigned artifacts, which forces users of asm that
have signature verification on to allowlist
ow2. This change upgrades the dependency to 1.5.1
which is signed.
Compare (see .asc files):
https://repo1.maven.org/maven2/org/ow2/ow2/1.5.1/
vs
https://repo1.maven.org/maven2/org/ow2/ow2/1.5/https://gitlab.ow2.org/asm/asm/-/merge_requests/352recognize Java 20 version (64)2022-06-19T11:02:42ZRemi Foraxrecognize Java 20 version (64)Add support of Java V20 version.
(Two early access build of JDK20 has already been published)
Java 20 should have neither new attributes nor new constant pool constants.Add support of Java V20 version.
(Two early access build of JDK20 has already been published)
Java 20 should have neither new attributes nor new constant pool constants.Eric BrunetonEric Brunetonhttps://gitlab.ow2.org/asm/asm/-/merge_requests/351Make sure that CheckClassAdapter leaves classes unchanged. Also fix a bug in...2022-06-12T15:03:34ZEric BrunetonMake sure that CheckClassAdapter leaves classes unchanged. Also fix a bug in...Make sure that CheckClassAdapter leaves classes unchanged. Also fix a bug in Analyzer which was not computing the optimal maxLocals value for static methods.
Closes #317977Make sure that CheckClassAdapter leaves classes unchanged. Also fix a bug in Analyzer which was not computing the optimal maxLocals value for static methods.
Closes #317977Eric BrunetonEric Brunetonhttps://gitlab.ow2.org/asm/asm/-/merge_requests/350Make sure to check all Label references.2022-05-28T13:25:16ZEric BrunetonMake sure to check all Label references.Update `referencedLabel ` in checkLabel to make sure we don't forget to add referenced labels to this list. For instance, the `dflt` label in `visitTableSwitchInsn` was not added to the list. As a consequence, this class could not detect...Update `referencedLabel ` in checkLabel to make sure we don't forget to add referenced labels to this list. For instance, the `dflt` label in `visitTableSwitchInsn` was not added to the list. As a consequence, this class could not detect error cases where this default label is not visited with `visitLabel` before `visitMaxs`. `visitLineNumber` had the same issue.Remi ForaxRemi Foraxhttps://gitlab.ow2.org/asm/asm/-/merge_requests/349Update JaCoCo to version 0.8.82022-04-27T14:14:41ZEvgeny MandrikovUpdate JaCoCo to version 0.8.8It provides experimental support for Java 19.
Full changelog - https://www.jacoco.org/jacoco/trunk/doc/changes.htmlIt provides experimental support for Java 19.
Full changelog - https://www.jacoco.org/jacoco/trunk/doc/changes.htmlRemi 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/346Small Javadoc improvements and fixes.2022-05-26T12:19:44ZEric BrunetonSmall Javadoc improvements and fixes.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 Forax