; ; Output created by JasminView on Jul 14, 2002 ; mailto:shawn@pobox.com ; Copyright (c) 1997-Present Shawn Silverman ; ; Jasmin can be found at: ; http://www.cat.nyu.edu/meyer/jasmin/ ; ; Classfile version: ; major: 45 ; minor: 3 .source LoadNetR.java .class public LoadNetR .super java/lang/ClassLoader .field private data [B .field private myname Ljava/lang/String; ; >> METHOD 1 << .method public (Ljava/lang/String;)V .limit stack 4 .limit locals 2 ;---- .line 11 aload_0 invokespecial java/lang/ClassLoader/()V .line 12 aload_0 aload_1 invokevirtual LoadNetR/readBytes(Ljava/lang/String;)V .line 13 aload_0 new Jcf dup aload_0 getfield LoadNetR/data [B invokespecial Jcf/([B)V invokevirtual Jcf/className()Ljava/lang/String; putfield LoadNetR/myname Ljava/lang/String; .line 14 return .end method ; >> METHOD 2 << .method lcname()Ljava/lang/String; .limit stack 1 .limit locals 1 ;---- .line 16 aload_0 getfield LoadNetR/myname Ljava/lang/String; areturn .end method ; >> METHOD 3 << .method protected loadClass(Ljava/lang/String;Z)Ljava/lang/Class; .throws java/lang/ClassNotFoundException .limit stack 3 .limit locals 5 ;---- .line 20 aconst_null astore_3 .line 22 Label1: aload_0 aload_1 invokevirtual java/lang/ClassLoader/findSystemClass(Ljava/lang/String;)Ljava/lang/Class; areturn .line 23 Label2: astore 4 .line 25 aload_0 aload_1 invokevirtual java/lang/ClassLoader/findLoadedClass(Ljava/lang/String;)Ljava/lang/Class; astore_3 .line 26 aload_3 ifnull Label3 aload_3 areturn .line 28 Label3: aload_0 aload_1 invokespecial LoadNetR/myFindClass(Ljava/lang/String;)Ljava/lang/Class; astore_3 .line 29 aload_3 ifnonnull Label4 new java/lang/ClassNotFoundException dup aload_1 invokespecial java/lang/ClassNotFoundException/(Ljava/lang/String;)V athrow .line 31 Label4: iload_2 ifeq Label5 aload_0 aload_3 invokevirtual java/lang/ClassLoader/resolveClass(Ljava/lang/Class;)V .line 33 Label5: aload_3 areturn ;---- .catch java/lang/Throwable from Label1 to Label2 using Label2 .end method ; >> METHOD 4 << .method readBytes(Ljava/lang/String;)V .limit stack 5 .limit locals 7 ;---- .line 37 aload_0 sipush 4096 newarray byte putfield LoadNetR/data [B .line 38 iconst_0 istore_2 .line 40 Label1: new java/net/URL dup aload_1 invokespecial java/net/URL/(Ljava/lang/String;)V astore 4 .line 41 aload 4 invokevirtual java/net/URL/openStream()Ljava/io/InputStream; astore 5 .line 42 goto Label3 .line 43 Label2: iload_2 iload_3 iadd dup istore_2 aload_0 getfield LoadNetR/data [B arraylength if_icmpne Label3 .line 44 iload_2 iconst_2 imul newarray byte astore 6 .line 45 aload_0 getfield LoadNetR/data [B iconst_0 aload 6 iconst_0 iload_2 invokestatic java/lang/System/arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V .line 46 aload_0 aload 6 putfield LoadNetR/data [B .line 42 Label3: aload 5 aload_0 getfield LoadNetR/data [B iload_2 aload_0 getfield LoadNetR/data [B arraylength iload_2 isub invokevirtual java/io/InputStream/read([BII)I dup istore_3 ifge Label2 .line 49 iload_2 newarray byte astore 6 .line 50 aload_0 getfield LoadNetR/data [B iconst_0 aload 6 iconst_0 iload_2 invokestatic java/lang/System/arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V .line 51 aload_0 aload 6 putfield LoadNetR/data [B Label4: goto Label6 .line 52 Label5: astore 4 .line 53 Label6: return ;---- .catch java/io/IOException from Label1 to Label4 using Label5 .end method ; >> METHOD 5 << .method private synchronized myFindClass(Ljava/lang/String;)Ljava/lang/Class; .limit stack 5 .limit locals 3 ;---- .line 57 Label1: aload_0 aload_1 aload_0 getfield LoadNetR/data [B iconst_0 aload_0 getfield LoadNetR/data [B arraylength invokevirtual java/lang/ClassLoader/defineClass(Ljava/lang/String;[BII)Ljava/lang/Class; areturn .line 59 Label2: astore_2 getstatic java/lang/System/out Ljava/io/PrintStream; aload_2 invokevirtual java/lang/Throwable/getMessage()Ljava/lang/String; invokevirtual java/io/PrintStream/println(Ljava/lang/String;)V .line 60 new java/lang/ClassFormatError dup invokespecial java/lang/ClassFormatError/()V athrow ;---- .catch java/lang/Throwable from Label1 to Label2 using Label2 .end method ; >> METHOD 6 << .method public static main([Ljava/lang/String;)V .limit stack 4 .limit locals 5 ;---- .line 65 new LoadNetR dup aload_0 iconst_0 aaload invokespecial LoadNetR/(Ljava/lang/String;)V astore_1 .line 67 Label1: aload_1 aload_1 invokevirtual LoadNetR/lcname()Ljava/lang/String; invokevirtual java/lang/ClassLoader/loadClass(Ljava/lang/String;)Ljava/lang/Class; astore_2 .line 68 aload_2 invokevirtual java/lang/Class/newInstance()Ljava/lang/Object; astore_3 .line 69 aload_2 aload_0 iconst_1 aaload aconst_null invokevirtual java/lang/Class/getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method; astore 4 .line 70 aload 4 aload_3 aconst_null invokevirtual java/lang/reflect/Method/invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; pop Label2: goto Label4 .line 72 Label3: astore_2 aload_2 invokevirtual java/lang/Throwable/printStackTrace()V .line 74 Label4: return ;---- .catch java/lang/Throwable from Label1 to Label2 using Label3 .end method