Skip to content

Instantly share code, notes, and snippets.

@lrytz
Created October 7, 2021 06:36
Show Gist options
  • Save lrytz/c75bf89a3bfd7618ad575ea7c8e1c183 to your computer and use it in GitHub Desktop.
Save lrytz/c75bf89a3bfd7618ad575ea7c8e1c183 to your computer and use it in GitHub Desktop.
diff --git a/ModuleSerializationProxy.class.asm b/ModuleSerializationProxy.class.asm
index ded4eb8..abdbadf 100644
--- a/ModuleSerializationProxy.class.asm
+++ b/ModuleSerializationProxy.class.asm
@@ -2,13 +2,6 @@
// access flags 0x31
public final class scala/runtime/ModuleSerializationProxy implements java/io/Serializable {
- // access flags 0x8
- static INNERCLASS scala/runtime/ModuleSerializationProxy$1 null null
-
- // access flags 0x1A
- // signature Ljava/lang/ClassValue<Ljava/lang/Object;>;
- // declaration: java.lang.ClassValue<java.lang.Object>
- private final static Ljava/lang/ClassValue; instances
// access flags 0x12
// signature Ljava/lang/Class<*>;
@@ -18,64 +11,28 @@
// access flags 0x1A
private final static J serialVersionUID = 1
- // access flags 0x8
- static <clinit>()V
- NEW scala/runtime/ModuleSerializationProxy$1
- DUP
- INVOKESPECIAL scala/runtime/ModuleSerializationProxy$1.<init> ()V
- PUTSTATIC scala/runtime/ModuleSerializationProxy.instances : Ljava/lang/ClassValue;
- RETURN
- MAXSTACK = 2
- MAXLOCALS = 0
-
// access flags 0x1
// signature (Ljava/lang/Class<*>;)V
// declaration: void <init>(java.lang.Class<?>)
public <init>(Ljava/lang/Class;)V
- ALOAD 0
- INVOKESPECIAL java/lang/Object.<init> ()V
+ // parameter final moduleClass
ALOAD 0
ALOAD 1
PUTFIELD scala/runtime/ModuleSerializationProxy.moduleClass : Ljava/lang/Class;
+ ALOAD 0
+ INVOKESPECIAL java/lang/Object.<init> ()V
RETURN
MAXSTACK = 2
MAXLOCALS = 2
- // access flags 0x1008
- static synthetic access$000(Ljava/lang/Throwable;)Ljava/lang/Object;
- ALOAD 0
- INVOKESTATIC scala/runtime/ModuleSerializationProxy.rethrowRuntime (Ljava/lang/Throwable;)Ljava/lang/Object;
- ARETURN
- MAXSTACK = 1
- MAXLOCALS = 1
-
// access flags 0x2
private readResolve()Ljava/lang/Object;
- GETSTATIC scala/runtime/ModuleSerializationProxy.instances : Ljava/lang/ClassValue;
+ GETSTATIC scala/runtime/ModuleSerializationProxy$.MODULE$ : Lscala/runtime/ModuleSerializationProxy$;
+ INVOKEVIRTUAL scala/runtime/ModuleSerializationProxy$.scala$runtime$ModuleSerializationProxy$$instances ()Lscala/runtime/ClassValueCompat;
ALOAD 0
GETFIELD scala/runtime/ModuleSerializationProxy.moduleClass : Ljava/lang/Class;
- INVOKEVIRTUAL java/lang/ClassValue.get (Ljava/lang/Class;)Ljava/lang/Object;
+ INVOKEVIRTUAL scala/runtime/ClassValueCompat.get (Ljava/lang/Class;)Ljava/lang/Object;
ARETURN
MAXSTACK = 2
MAXLOCALS = 1
-
- // access flags 0xA
- private static rethrowRuntime(Ljava/lang/Throwable;)Ljava/lang/Object;
- ALOAD 0
- INVOKEVIRTUAL java/lang/Throwable.getCause ()Ljava/lang/Throwable;
- ASTORE 1
- ALOAD 1
- INSTANCEOF java/lang/RuntimeException
- IFEQ L0
- ALOAD 1
- CHECKCAST java/lang/RuntimeException
- ATHROW
- L0
- NEW java/lang/RuntimeException
- DUP
- ALOAD 1
- INVOKESPECIAL java/lang/RuntimeException.<init> (Ljava/lang/Throwable;)V
- ATHROW
- MAXSTACK = 3
- MAXLOCALS = 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment