; ; 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 LoadStdinI.java .class public LoadStdinI .super java/lang/ClassLoader .field private data [B .field private myname Ljava/lang/String; ; >> METHOD 1 << .method public (Ljava/io/InputStream;)V .limit stack 4 .limit locals 2 ;---- .line 9 aload_0 invokespecial java/lang/ClassLoader/()V .line 10 aload_0 aload_1 invokevirtual LoadStdinI/readBytes(Ljava/io/InputStream;)V .line 11 aload_0 new Jcf dup aload_0 getfield LoadStdinI/data [B invokespecial Jcf/([B)V invokevirtual Jcf/className()Ljava/lang/String; putfield LoadStdinI/myname Ljava/lang/String; .line 12 return .end method ; >> METHOD 2 << .method lcname()Ljava/lang/String; .limit stack 1 .limit locals 1 ;---- .line 14 aload_0 getfield LoadStdinI/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 18 aconst_null astore_3 .line 20 Label1: aload_0 aload_1 invokevirtual java/lang/ClassLoader/findSystemClass(Ljava/lang/String;)Ljava/lang/Class; areturn .line 21 Label2: astore 4 .line 23 aload_0 aload_1 invokevirtual java/lang/ClassLoader/findLoadedClass(Ljava/lang/String;)Ljava/lang/Class; astore_3 .line 24 aload_3 ifnull Label3 aload_3 areturn .line 26 Label3: aload_0 aload_1 invokespecial LoadStdinI/myFindClass(Ljava/lang/String;)Ljava/lang/Class; astore_3 .line 27 aload_3 ifnonnull Label4 new java/lang/ClassNotFoundException dup aload_1 invokespecial java/lang/ClassNotFoundException/(Ljava/lang/String;)V athrow .line 29 Label4: iload_2 ifeq Label5 aload_0 aload_3 invokevirtual java/lang/ClassLoader/resolveClass(Ljava/lang/Class;)V .line 31 Label5: aload_3 areturn ;---- .catch java/lang/Throwable from Label1 to Label2 using Label2 .end method ; >> METHOD 4 << .method readBytes(Ljava/io/InputStream;)V .limit stack 5 .limit locals 5 ;---- .line 35 aload_0 sipush 4096 newarray byte putfield LoadStdinI/data [B .line 36 iconst_0 istore_2 .line 38 Label1: goto Label3 .line 39 Label2: iload_2 iload_3 iadd dup istore_2 aload_0 getfield LoadStdinI/data [B arraylength if_icmpne Label3 .line 40 iload_2 iconst_2 imul newarray byte astore 4 .line 41 aload_0 getfield LoadStdinI/data [B iconst_0 aload 4 iconst_0 iload_2 invokestatic java/lang/System/arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V .line 42 aload_0 aload 4 putfield LoadStdinI/data [B .line 38 Label3: aload_1 aload_0 getfield LoadStdinI/data [B iload_2 aload_0 getfield LoadStdinI/data [B arraylength iload_2 isub invokevirtual java/io/InputStream/read([BII)I dup istore_3 ifge Label2 .line 45 iload_2 newarray byte astore 4 .line 46 aload_0 getfield LoadStdinI/data [B iconst_0 aload 4 iconst_0 iload_2 invokestatic java/lang/System/arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V .line 47 aload_0 aload 4 putfield LoadStdinI/data [B Label4: goto Label6 .line 48 Label5: astore 4 .line 49 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 53 Label1: aload_0 aload_1 aload_0 getfield LoadStdinI/data [B iconst_0 aload_0 getfield LoadStdinI/data [B arraylength invokevirtual java/lang/ClassLoader/defineClass(Ljava/lang/String;[BII)Ljava/lang/Class; areturn .line 55 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 56 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 3 .limit locals 4 ;---- .line 61 new LoadStdinI dup getstatic java/lang/System/in Ljava/io/InputStream; invokespecial LoadStdinI/(Ljava/io/InputStream;)V astore_1 .line 63 Label1: aload_1 aload_1 invokevirtual LoadStdinI/lcname()Ljava/lang/String; invokevirtual java/lang/ClassLoader/loadClass(Ljava/lang/String;)Ljava/lang/Class; astore_2 .line 64 aload_2 invokevirtual java/lang/Class/newInstance()Ljava/lang/Object; checkcast java/lang/Runnable astore_3 .line 65 aload_3 invokeinterface java/lang/Runnable/run()V 1 Label2: goto Label4 .line 67 Label3: astore_2 aload_2 invokevirtual java/lang/Throwable/printStackTrace()V .line 69 Label4: return ;---- .catch java/lang/Throwable from Label1 to Label2 using Label3 .end method