Skip to content

Skip remap inner class name if not changed

Karlatemp requested to merge karlatemp/asm:skip-remap-if-same into master

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:

The simplest reproduction is

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
}
Edited by Karlatemp

Merge request reports