Skip to content

Instantly share code, notes, and snippets.

@rscottm
Created November 22, 2012 08:43
Show Gist options
  • Select an option

  • Save rscottm/4130034 to your computer and use it in GitHub Desktop.

Select an option

Save rscottm/4130034 to your computer and use it in GitHub Desktop.
baksmali output
public final class org.jruby.proxy.java.math.BigInteger$Proxy0 extends java.math.BigInteger implements org.jruby.javasupport.proxy.InternalJavaProxy{
public org.jruby.proxy.java.math.BigInteger$Proxy0(int, int, java.util.Random, org.jruby.javasupport.proxy.JavaProxyInvocationHandler);
Code:
0: aload_0
1: iload_1
2: iload_2
3: aload_3
4: invokespecial #33; //Method java/math/BigInteger."<init>":(IILjava/util/Random;)V
7: aload_0
8: aload 4
10: putfield #35; //Field __handler:Lorg/jruby/javasupport/proxy/JavaProxyInvocationHandler;
13: return
public org.jruby.proxy.java.math.BigInteger$Proxy0(int, int, int[], org.jruby.javasupport.proxy.JavaProxyInvocationHandler);
Code:
0: aload_0
1: iload_1
2: iload_2
3: aload_3
4: invokespecial #39; //Method java/math/BigInteger."<init>":(II[I)V
7: aload_0
8: aload 4
10: putfield #35; //Field __handler:Lorg/jruby/javasupport/proxy/JavaProxyInvocationHandler;
13: return
public org.jruby.proxy.java.math.BigInteger$Proxy0(int, long, org.jruby.javasupport.proxy.JavaProxyInvocationHandler);
Code:
0: aload_0
1: iload_1
2: lload_2
3: invokespecial #43; //Method java/math/BigInteger."<init>":(IJ)V
6: aload_0
7: aload 4
9: putfield #35; //Field __handler:Lorg/jruby/javasupport/proxy/JavaProxyInvocationHandler;
12: return
public org.jruby.proxy.java.math.BigInteger$Proxy0(int, java.util.Random, org.jruby.javasupport.proxy.JavaProxyInvocationHandler);
Code:
0: aload_0
1: iload_1
2: aload_2
3: invokespecial #47; //Method java/math/BigInteger."<init>":(ILjava/util/Random;)V
6: aload_0
7: aload_3
8: putfield #35; //Field __handler:Lorg/jruby/javasupport/proxy/JavaProxyInvocationHandler;
11: return
public org.jruby.proxy.java.math.BigInteger$Proxy0(int, byte[], org.jruby.javasupport.proxy.JavaProxyInvocationHandler);
Code:
0: aload_0
1: iload_1
2: aload_2
3: invokespecial #51; //Method java/math/BigInteger."<init>":(I[B)V
6: aload_0
7: aload_3
8: putfield #35; //Field __handler:Lorg/jruby/javasupport/proxy/JavaProxyInvocationHandler;
11: return
public org.jruby.proxy.java.math.BigInteger$Proxy0(java.lang.String, org.jruby.javasupport.proxy.JavaProxyInvocationHandler);
Code:
0: aload_0
1: aload_1
2: invokespecial #55; //Method java/math/BigInteger."<init>":(Ljava/lang/String;)V
5: aload_0
6: aload_2
7: putfield #35; //Field __handler:Lorg/jruby/javasupport/proxy/JavaProxyInvocationHandler;
10: return
public org.jruby.proxy.java.math.BigInteger$Proxy0(java.lang.String, int, org.jruby.javasupport.proxy.JavaProxyInvocationHandler);
Code:
0: aload_0
1: aload_1
2: iload_2
3: invokespecial #59; //Method java/math/BigInteger."<init>":(Ljava/lang/String;I)V
6: aload_0
7: aload_3
8: putfield #35; //Field __handler:Lorg/jruby/javasupport/proxy/JavaProxyInvocationHandler;
11: return
public org.jruby.proxy.java.math.BigInteger$Proxy0(java.math.BigInt, org.jruby.javasupport.proxy.JavaProxyInvocationHandler);
Code:
0: aload_0
1: aload_1
2: invokespecial #63; //Method java/math/BigInteger."<init>":(Ljava/math/BigInt;)V
5: aload_0
6: aload_2
7: putfield #35; //Field __handler:Lorg/jruby/javasupport/proxy/JavaProxyInvocationHandler;
10: return
public org.jruby.proxy.java.math.BigInteger$Proxy0(byte[], org.jruby.javasupport.proxy.JavaProxyInvocationHandler);
Code:
0: aload_0
1: aload_1
2: invokespecial #67; //Method java/math/BigInteger."<init>":([B)V
5: aload_0
6: aload_2
7: putfield #35; //Field __handler:Lorg/jruby/javasupport/proxy/JavaProxyInvocationHandler;
10: return
public org.jruby.javasupport.proxy.JavaProxyClass ___getProxyClass();
Code:
0: getstatic #28; //Field __proxy_class:Lorg/jruby/javasupport/proxy/JavaProxyClass;
3: areturn
public org.jruby.javasupport.proxy.JavaProxyInvocationHandler ___getInvocationHandler();
Code:
0: aload_0
1: getfield #35; //Field __handler:Lorg/jruby/javasupport/proxy/JavaProxyInvocationHandler;
4: areturn
public boolean equals(java.lang.Object);
Code:
0: aload_0
1: getfield #35; //Field __handler:Lorg/jruby/javasupport/proxy/JavaProxyInvocationHandler;
4: dup
5: ifnonnull 14
8: aload_0
9: aload_1
10: invokespecial #85; //Method java/math/BigInteger.equals:(Ljava/lang/Object;)Z
13: ireturn
14: aload_0
15: getstatic #83; //Field __mth$equals$java_lang_Object:Lorg/jruby/javasupport/proxy/JavaProxyMethod;
18: iconst_1
19: anewarray #87; //class java/lang/Object
22: dup
23: iconst_0
24: aload_1
25: aastore
26: invokeinterface #93, 4; //InterfaceMethod org/jruby/javasupport/proxy/JavaProxyInvocationHandler.invoke:(Ljava/lang/Object;Lorg/jruby/javasupport/proxy/JavaProxyMethod;[Ljava/lang/Object;)Ljava/lang/Object;
31: checkcast #95; //class java/lang/Boolean
34: invokevirtual #99; //Method java/lang/Boolean.booleanValue:()Z
37: ireturn
38: athrow
39: astore_2
40: new #105; //class java/lang/reflect/UndeclaredThrowableException
43: dup
44: aload_2
45: invokespecial #108; //Method java/lang/reflect/UndeclaredThrowableException."<init>":(Ljava/lang/Throwable;)V
48: athrow
Exception table:
from to target type
26 31 38 Class java/lang/Error
26 31 38 Class java/lang/RuntimeException
26 31 39 Class java/lang/Throwable
public boolean __super$equals(java.lang.Object);
Code:
0: aload_0
1: aload_1
2: invokespecial #85; //Method java/math/BigInteger.equals:(Ljava/lang/Object;)Z
5: ireturn
}
.class public final Lorg/jruby/proxy/java/math/BigInteger$Proxy1;
.super Ljava/math/BigInteger;
# interfaces
.implements Lorg/jruby/javasupport/proxy/InternalJavaProxy;
# static fields
.field private static __mth$equals$java_lang_Object:Lorg/jruby/javasupport/proxy/JavaProxyMethod;
.field private static __proxy_class:Lorg/jruby/javasupport/proxy/JavaProxyClass;
# instance fields
.field private __handler:Lorg/jruby/javasupport/proxy/JavaProxyInvocationHandler;
# direct methods
.method private static constructor <clinit>()V
.registers 6
const-string v0, "org.jruby.proxy.java.math.BigInteger$Proxy1"
invoke-static {v0}, Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;
move-result-object v0
invoke-static {v0}, Lorg/jruby/javasupport/proxy/InternalJavaProxyHelper;->initProxyClass(Ljava/lang/Class;)Lorg/jruby/javasupport/proxy/JavaProxyClass;
move-result-object v0
move-object v5, v0
move-object v0, v5
move-object v1, v5
sput-object v1, Lorg/jruby/proxy/java/math/BigInteger$Proxy1;->__proxy_class:Lorg/jruby/javasupport/proxy/JavaProxyClass;
move-object v5, v0
move-object v0, v5
move-object v1, v5
const-string v2, "equals"
const-string v3, "(Ljava/lang/Object;)Z"
const/4 v4, 0x1
invoke-static {v1, v2, v3, v4}, Lorg/jruby/javasupport/proxy/InternalJavaProxyHelper;->initProxyMethod(Lorg/jruby/javasupport/proxy/JavaProxyClass;Ljava/lang/String;Ljava/lang/String;Z)Lorg/jruby/javasupport/proxy/JavaProxyMethod;
move-result-object v1
sput-object v1, Lorg/jruby/proxy/java/math/BigInteger$Proxy1;->__mth$equals$java_lang_Object:Lorg/jruby/javasupport/proxy/JavaProxyMethod;
return-void
.end method
.method public constructor <init>(IILjava/util/Random;Lorg/jruby/javasupport/proxy/JavaProxyInvocationHandler;)V
.registers 14
move-object v0, p0
move v1, p1
move v2, p2
move-object v3, p3
move-object v4, p4
move-object v5, v0
move v6, v1
move v7, v2
move-object v8, v3
invoke-direct {v5, v6, v7, v8}, Ljava/math/BigInteger;-><init>(IILjava/util/Random;)V
move-object v5, v0
move-object v6, v4
iput-object v6, v5, Lorg/jruby/proxy/java/math/BigInteger$Proxy1;->__handler:Lorg/jruby/javasupport/proxy/JavaProxyInvocationHandler;
return-void
.end method
.method public constructor <init>(II[ILorg/jruby/javasupport/proxy/JavaProxyInvocationHandler;)V
.registers 14
move-object v0, p0
move v1, p1
move v2, p2
move-object v3, p3
move-object v4, p4
move-object v5, v0
move v6, v1
move v7, v2
move-object v8, v3
invoke-direct {v5, v6, v7, v8}, Ljava/math/BigInteger;-><init>(II[I)V
move-object v5, v0
move-object v6, v4
iput-object v6, v5, Lorg/jruby/proxy/java/math/BigInteger$Proxy1;->__handler:Lorg/jruby/javasupport/proxy/JavaProxyInvocationHandler;
return-void
.end method
.method public constructor <init>(IJLorg/jruby/javasupport/proxy/JavaProxyInvocationHandler;)V
.registers 14
move-object v0, p0
move v1, p1
move-wide v2, p2
move-object v4, p4
move-object v5, v0
move v6, v1
move-wide v7, v2
invoke-direct {v5, v6, v7, v8}, Ljava/math/BigInteger;-><init>(IJ)V
move-object v5, v0
move-object v6, v4
iput-object v6, v5, Lorg/jruby/proxy/java/math/BigInteger$Proxy1;->__handler:Lorg/jruby/javasupport/proxy/JavaProxyInvocationHandler;
return-void
.end method
.method public constructor <init>(ILjava/util/Random;Lorg/jruby/javasupport/proxy/JavaProxyInvocationHandler;)V
.registers 11
move-object v0, p0
move v1, p1
move-object v2, p2
move-object v3, p3
move-object v4, v0
move v5, v1
move-object v6, v2
invoke-direct {v4, v5, v6}, Ljava/math/BigInteger;-><init>(ILjava/util/Random;)V
move-object v4, v0
move-object v5, v3
iput-object v5, v4, Lorg/jruby/proxy/java/math/BigInteger$Proxy1;->__handler:Lorg/jruby/javasupport/proxy/JavaProxyInvocationHandler;
return-void
.end method
.method public constructor <init>(I[BLorg/jruby/javasupport/proxy/JavaProxyInvocationHandler;)V
.registers 11
move-object v0, p0
move v1, p1
move-object v2, p2
move-object v3, p3
move-object v4, v0
move v5, v1
move-object v6, v2
invoke-direct {v4, v5, v6}, Ljava/math/BigInteger;-><init>(I[B)V
move-object v4, v0
move-object v5, v3
iput-object v5, v4, Lorg/jruby/proxy/java/math/BigInteger$Proxy1;->__handler:Lorg/jruby/javasupport/proxy/JavaProxyInvocationHandler;
return-void
.end method
.method public constructor <init>(Ljava/lang/String;ILorg/jruby/javasupport/proxy/JavaProxyInvocationHandler;)V
.registers 11
move-object v0, p0
move-object v1, p1
move v2, p2
move-object v3, p3
move-object v4, v0
move-object v5, v1
move v6, v2
invoke-direct {v4, v5, v6}, Ljava/math/BigInteger;-><init>(Ljava/lang/String;I)V
move-object v4, v0
move-object v5, v3
iput-object v5, v4, Lorg/jruby/proxy/java/math/BigInteger$Proxy1;->__handler:Lorg/jruby/javasupport/proxy/JavaProxyInvocationHandler;
return-void
.end method
.method public constructor <init>(Ljava/lang/String;Lorg/jruby/javasupport/proxy/JavaProxyInvocationHandler;)V
.registers 8
move-object v0, p0
move-object v1, p1
move-object v2, p2
move-object v3, v0
move-object v4, v1
invoke-direct {v3, v4}, Ljava/math/BigInteger;-><init>(Ljava/lang/String;)V
move-object v3, v0
move-object v4, v2
iput-object v4, v3, Lorg/jruby/proxy/java/math/BigInteger$Proxy1;->__handler:Lorg/jruby/javasupport/proxy/JavaProxyInvocationHandler;
return-void
.end method
.method public constructor <init>(Ljava/math/BigInt;Lorg/jruby/javasupport/proxy/JavaProxyInvocationHandler;)V
.registers 8
move-object v0, p0
move-object v1, p1
move-object v2, p2
move-object v3, v0
move-object v4, v1
invoke-direct {v3, v4}, Ljava/math/BigInteger;-><init>(Ljava/math/BigInt;)V
move-object v3, v0
move-object v4, v2
iput-object v4, v3, Lorg/jruby/proxy/java/math/BigInteger$Proxy1;->__handler:Lorg/jruby/javasupport/proxy/JavaProxyInvocationHandler;
return-void
.end method
.method public constructor <init>([BLorg/jruby/javasupport/proxy/JavaProxyInvocationHandler;)V
.registers 8
move-object v0, p0
move-object v1, p1
move-object v2, p2
move-object v3, v0
move-object v4, v1
invoke-direct {v3, v4}, Ljava/math/BigInteger;-><init>([B)V
move-object v3, v0
move-object v4, v2
iput-object v4, v3, Lorg/jruby/proxy/java/math/BigInteger$Proxy1;->__handler:Lorg/jruby/javasupport/proxy/JavaProxyInvocationHandler;
return-void
.end method
# virtual methods
.method public ___getInvocationHandler()Lorg/jruby/javasupport/proxy/JavaProxyInvocationHandler;
.registers 3
move-object v0, p0
move-object v1, v0
iget-object v1, v1, Lorg/jruby/proxy/java/math/BigInteger$Proxy1;->__handler:Lorg/jruby/javasupport/proxy/JavaProxyInvocationHandler;
move-object v0, v1
return-object v0
.end method
.method public ___getProxyClass()Lorg/jruby/javasupport/proxy/JavaProxyClass;
.registers 3
move-object v0, p0
sget-object v1, Lorg/jruby/proxy/java/math/BigInteger$Proxy1;->__proxy_class:Lorg/jruby/javasupport/proxy/JavaProxyClass;
move-object v0, v1
return-object v0
.end method
.method public __super$equals(Ljava/lang/Object;)Z
.registers 6
move-object v0, p0
move-object v1, p1
move-object v2, v0
move-object v3, v1
invoke-direct {v2, v3}, Ljava/math/BigInteger;->equals(Ljava/lang/Object;)Z
move-result v2
move v0, v2
return v0
.end method
.method public equals(Ljava/lang/Object;)Z
.registers 13
move-object v0, p0
move-object v1, p1
move-object v3, v0
iget-object v3, v3, Lorg/jruby/proxy/java/math/BigInteger$Proxy1;->__handler:Lorg/jruby/javasupport/proxy/JavaProxyInvocationHandler;
move-object v10, v3
move-object v3, v10
move-object v4, v10
if-nez v4, :cond_12
move-object v4, v0
move-object v5, v1
invoke-direct {v4, v5}, Ljava/math/BigInteger;->equals(Ljava/lang/Object;)Z
move-result v4
move v0, v4
:goto_11
return v0
:cond_12
move-object v4, v0
sget-object v5, Lorg/jruby/proxy/java/math/BigInteger$Proxy1;->__mth$equals$java_lang_Object:Lorg/jruby/javasupport/proxy/JavaProxyMethod;
const/4 v6, 0x1
new-array v6, v6, [Ljava/lang/Object;
move-object v10, v6
move-object v6, v10
move-object v7, v10
const/4 v8, 0x0
move-object v9, v1
aput-object v9, v7, v8
:try_start_1f
invoke-interface {v3, v4, v5, v6}, Lorg/jruby/javasupport/proxy/JavaProxyInvocationHandler;->invoke(Ljava/lang/Object;Lorg/jruby/javasupport/proxy/JavaProxyMethod;[Ljava/lang/Object;)Ljava/lang/Object;
:try_end_22
.catch Ljava/lang/Error; {:try_start_1f .. :try_end_22} :catch_2b
.catch Ljava/lang/RuntimeException; {:try_start_1f .. :try_end_22} :catch_2b
.catch Ljava/lang/Throwable; {:try_start_1f .. :try_end_22} :catch_2d
move-result-object v3
check-cast v3, Ljava/lang/Boolean;
invoke-virtual {v3}, Ljava/lang/Boolean;->booleanValue()Z
move-result v3
move v0, v3
goto :goto_11
:catch_2b
move-exception v3
throw v3
:catch_2d
move-exception v3
move-object v2, v3
new-instance v3, Ljava/lang/reflect/UndeclaredThrowableException;
move-object v10, v3
move-object v3, v10
move-object v4, v10
move-object v5, v2
invoke-direct {v4, v5}, Ljava/lang/reflect/UndeclaredThrowableException;-><init>(Ljava/lang/Throwable;)V
throw v3
.end method
class MyBigInt < java.math.BigInteger
def equals(x)
rv = super(x)
rv
end
end
b = MyBigInt.new("10")
b.equals(10)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment