;; 1231(d) bytes data (Revision: 4.9)

CA FE BA BE ; magic number
00 03 ; minor version
00 2D ; major version

00 5A ; constant pool number= 89(d) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

08 00 2C ;(00 01) String => " "
07 00 38 ;(00 02) Class => CoThread
07 00 3C ;(00 03) Class => Counter
07 00 45 ;(00 04) Class => Waiting
07 00 4A ;(00 05) Class => java/io/PrintStream
07 00 4B ;(00 06) Class => java/lang/String
07 00 4C ;(00 07) Class => java/lang/StringBuffer
07 00 4D ;(00 08) Class => java/lang/System
07 00 4E ;(00 09) Class => java/lang/Thread
0A 00 03 00 1C ;(00 0A) Methodref => Counter.<init>:()V
0A 00 04 00 1C ;(00 0B) Methodref => Waiting.<init>:()V
0A 00 09 00 1C ;(00 0C) Methodref => java/lang/Thread.<init>:()V
0A 00 02 00 1D ;(00 0D) Methodref => CoThread.<init>:(ILCounter;)V
0A 00 07 00 1E ;(00 0E) Methodref => java/lang/StringBuffer.<init>:(Ljava/lang/String;)V
0A 00 07 00 1F ;(00 0F) Methodref => java/lang/StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
09 00 02 00 20 ;(00 10) Fieldref => CoThread.c:LCounter;
;
0A 00 03 00 21 ;(00 11) Methodref => Counter.get:()I
09 00 02 00 22 ;(00 12) Fieldref => CoThread.id:I
09 00 08 00 23 ;(00 13) Fieldref => java/lang/System.out:Ljava/io/PrintStream;
0A 00 05 00 24 ;(00 14) Methodref => java/io/PrintStream.print:(Ljava/lang/String;)V
0A 00 03 00 25 ;(00 15) Methodref => Counter.set:(I)V
0A 00 03 00 26 ;(00 16) Methodref => Counter.show:()V
0A 00 09 00 27 ;(00 17) Methodref => java/lang/Thread.start:()V
0A 00 07 00 28 ;(00 18) Methodref => java/lang/StringBuffer.toString:()Ljava/lang/String;
0A 00 06 00 29 ;(00 19) Methodref => java/lang/String.valueOf:(I)Ljava/lang/String;
09 00 02 00 2A ;(00 1A) Fieldref => CoThread.w:LWaiting;
0A 00 04 00 2B ;(00 1B) Methodref => Waiting.wait:(Ljava/lang/Thread;)V
0C 00 37 00 2F ;(00 1C) NameAndType => <init>:()V
0C 00 37 00 32 ;(00 1D) NameAndType => <init>:(ILCounter;)V
0C 00 37 00 34 ;(00 1E) NameAndType => <init>:(Ljava/lang/String;)V
0C 00 46 00 33 ;(00 1F) NameAndType => append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
0C 00 47 00 3F ;(00 20) NameAndType => c:LCounter;
;
0C 00 48 00 2D ;(00 21) NameAndType => get:()I
0C 00 49 00 3E ;(00 22) NameAndType => id:I
0C 00 50 00 42 ;(00 23) NameAndType => out:Ljava/io/PrintStream;
0C 00 51 00 34 ;(00 24) NameAndType => print:(Ljava/lang/String;)V
0C 00 53 00 31 ;(00 25) NameAndType => set:(I)V
0C 00 54 00 2F ;(00 26) NameAndType => show:()V
0C 00 55 00 2F ;(00 27) NameAndType => start:()V
0C 00 56 00 2E ;(00 28) NameAndType => toString:()Ljava/lang/String;
0C 00 57 00 30 ;(00 29) NameAndType => valueOf:(I)Ljava/lang/String;
0C 00 58 00 40 ;(00 2A) NameAndType => w:LWaiting;
0C 00 59 00 35 ;(00 2B) NameAndType => wait:(Ljava/lang/Thread;)V
01 00 01 20 ;(00 2C) Utf8 = " "
01 00 03 28 29 49 ;(00 2D) Utf8 = "()I"
01 00 14 28 29 4C 6A 61 76 61 2F 6C 61 6E 67 2F 53 74 72 69 6E 67 3B ;(00 2E) Utf8 = "()Ljava/lang/String;"
01 00 03 28 29 56 ;(00 2F) Utf8 = "()V"
01 00 15 28 49 29 4C 6A 61 76 61 2F 6C 61 6E 67 2F 53 74 72 69 6E 67 3B ;(00 30) Utf8 = "(I)Ljava/lang/String;"
;
01 00 04 28 49 29 56 ;(00 31) Utf8 = "(I)V"
01 00 0D 28 49 4C 43 6F 75 6E 74 65 72 3B 29 56 ;(00 32) Utf8 = "(ILCounter;)V"
01 00 2C 28 4C 6A 61 76 61 2F 6C 61 6E 67 2F 53 74 72 69 6E 67 3B 29 4C 6A 61 76 61 2F 6C 61 6E 67 2F 53 74 72 69 6E 67 42 75 66 66 65 72 3B ;(00 33) Utf8 = "(Ljava/lang/String;)Ljava/lang/StringBuffer;"
01 00 15 28 4C 6A 61 76 61 2F 6C 61 6E 67 2F 53 74 72 69 6E 67 3B 29 56 ;(00 34) Utf8 = "(Ljava/lang/String;)V"
01 00 15 28 4C 6A 61 76 61 2F 6C 61 6E 67 2F 54 68 72 65 61 64 3B 29 56 ;(00 35) Utf8 = "(Ljava/lang/Thread;)V"
01 00 16 28 5B 4C 6A 61 76 61 2F 6C 61 6E 67 2F 53 74 72 69 6E 67 3B 29 56 ;(00 36) Utf8 = "([Ljava/lang/String;)V"
01 00 06 3C 69 6E 69 74 3E ;(00 37) Utf8 = "<init>"
01 00 08 43 6F 54 68 72 65 61 64 ;(00 38) Utf8 = "CoThread"
01 00 0D 43 6F 54 68 72 65 61 64 2E 6A 61 76 61 ;(00 39) Utf8 = "CoThread.java"
01 00 04 43 6F 64 65 ;(00 3A) Utf8 = "Code"
01 00 0D 43 6F 6E 73 74 61 6E 74 56 61 6C 75 65 ;(00 3B) Utf8 = "ConstantValue"
01 00 07 43 6F 75 6E 74 65 72 ;(00 3C) Utf8 = "Counter"
01 00 0A 45 78 63 65 70 74 69 6F 6E 73 ;(00 3D) Utf8 = "Exceptions"
01 00 01 49 ;(00 3E) Utf8 = "I"
01 00 09 4C 43 6F 75 6E 74 65 72 3B ;(00 3F) Utf8 = "LCounter;"
01 00 09 4C 57 61 69 74 69 6E 67 3B ;(00 40) Utf8 = "LWaiting;"
;
01 00 0F 4C 69 6E 65 4E 75 6D 62 65 72 54 61 62 6C 65 ;(00 41) Utf8 = "LineNumberTable"
01 00 15 4C 6A 61 76 61 2F 69 6F 2F 50 72 69 6E 74 53 74 72 65 61 6D 3B ;(00 42) Utf8 = "Ljava/io/PrintStream;"
01 00 0E 4C 6F 63 61 6C 56 61 72 69 61 62 6C 65 73 ;(00 43) Utf8 = "LocalVariables"
01 00 0A 53 6F 75 72 63 65 46 69 6C 65 ;(00 44) Utf8 = "SourceFile"
01 00 07 57 61 69 74 69 6E 67 ;(00 45) Utf8 = "Waiting"
01 00 06 61 70 70 65 6E 64 ;(00 46) Utf8 = "append"
01 00 01 63 ;(00 47) Utf8 = "c"
01 00 03 67 65 74 ;(00 48) Utf8 = "get"
01 00 02 69 64 ;(00 49) Utf8 = "id"
01 00 13 6A 61 76 61 2F 69 6F 2F 50 72 69 6E 74 53 74 72 65 61 6D ;(00 4A) Utf8 = "java/io/PrintStream"
01 00 10 6A 61 76 61 2F 6C 61 6E 67 2F 53 74 72 69 6E 67 ;(00 4B) Utf8 = "java/lang/String"
01 00 16 6A 61 76 61 2F 6C 61 6E 67 2F 53 74 72 69 6E 67 42 75 66 66 65 72 ;(00 4C) Utf8 = "java/lang/StringBuffer"
01 00 10 6A 61 76 61 2F 6C 61 6E 67 2F 53 79 73 74 65 6D ;(00 4D) Utf8 = "java/lang/System"
01 00 10 6A 61 76 61 2F 6C 61 6E 67 2F 54 68 72 65 61 64 ;(00 4E) Utf8 = "java/lang/Thread"
01 00 04 6D 61 69 6E ;(00 4F) Utf8 = "main"
01 00 03 6F 75 74 ;(00 50) Utf8 = "out"
;
01 00 05 70 72 69 6E 74 ;(00 51) Utf8 = "print"
01 00 03 72 75 6E ;(00 52) Utf8 = "run"
01 00 03 73 65 74 ;(00 53) Utf8 = "set"
01 00 04 73 68 6F 77 ;(00 54) Utf8 = "show"
01 00 05 73 74 61 72 74 ;(00 55) Utf8 = "start"
01 00 08 74 6F 53 74 72 69 6E 67 ;(00 56) Utf8 = "toString"
01 00 07 76 61 6C 75 65 4F 66 ;(00 57) Utf8 = "valueOf"
01 00 01 77 ;(00 58) Utf8 = "w"
01 00 04 77 61 69 74 ;(00 59) Utf8 = "wait"

;; class info. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

00 20 ; access flag= SUPER
00 02 ; this class= "CoThread"
00 09 ; super class= "java/lang/Thread"

00 00 ; num. of implemented interface(s)= 0(d) ;;;;;;;;;;;;;;;;;;;;;;


00 03 ; num. of field(s)= 3(d) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;BEGIN field1(d) def.
00 02 ; access flag of method = PRIVATE
00 58 ; method name ="w"
00 40 ; method type ="LWaiting;"
;
00 00 ; num. of attribute(s), 0(d)
;
;END field1(d) def.

;BEGIN field2(d) def.
00 02 ; access flag of method = PRIVATE
00 49 ; method name ="id"
00 3E ; method type ="I"
;
00 00 ; num. of attribute(s), 0(d)
;
;END field2(d) def.

;BEGIN field3(d) def.
00 02 ; access flag of method = PRIVATE
00 47 ; method name ="c"
00 3F ; method type ="LCounter;"
;
00 00 ; num. of attribute(s), 0(d)
;
;END field3(d) def.

00 03 ; num. of methods(s)= 3(d) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;BEGIN method1(d) def.
00 00 ; access flag of method = 
00 37 ; method name ="<init>"
00 32 ; method type ="(ILCounter;)V"
;
00 01 ; num. of attribute(s), 1(d)
;;begin attribute 1(d)
00 3A ; attribute type= "Code"
00 00 00 42 ; attribute length= 66(d)
;;
00 03 ; stacks limits
00 03 ; locals limits
00 00 00 1A ; length of codes = 26(d)
;;
2A       ; aload_0
B7 00 0C ; invokespecial java/lang/Thread/<init>()V
2A       ; aload_0
BB 00 04 ; new Waiting
59       ; dup
B7 00 0B ; invokespecial Waiting/<init>()V
B5 00 1A ; putfield CoThread/w LWaiting;
2A       ; aload_0
1B       ; iload_1
B5 00 12 ; putfield CoThread/id I
2A       ; aload_0
2C       ; aload_2
B5 00 10 ; putfield CoThread/c LCounter;
B1       ; return
;;
00 00 ; num. of exception handler(s) = 0(d)
;;
00 01 ; num. of attr. of this code attr. = 1(d)
00 41 ; code-attr.'s attr.1(d) name="LineNumberTable"
00 00 00 16 ; length of attr.=22(d)
00 05 ; 5(d) line number(s)
00 00 00 08 ; .line 8
00 04 00 09 ; .line 9
00 0F 00 0A ; .line 10
00 14 00 0B ; .line 11
00 19 00 07 ; .line 7
;;end attribute 1(d)
;
;END method1(d) def.

;BEGIN method2(d) def.
00 01 ; access flag of method = PUBLIC
00 52 ; method name ="run"
00 2F ; method type ="()V"
;
00 01 ; num. of attribute(s), 1(d)
;;begin attribute 1(d)
00 3A ; attribute type= "Code"
00 00 00 AD ; attribute length= 173(d)
;;
00 04 ; stacks limits
00 05 ; locals limits
00 00 00 65 ; length of codes = 101(d)
;;
03       ; iconst_0
3C       ; istore_1
A7 00 55 ; goto Label6
2A       ; aload_0
B4 00 1A ; getfield CoThread/w LWaiting;
2A       ; aload_0
B6 00 1B ; invokevirtual Waiting/wait(Ljava/lang/Thread;)V
B2 00 13 ; getstatic java/lang/System/out Ljava/io/PrintStream;
BB 00 07 ; new java/lang/StringBuffer
59       ; dup
2A       ; aload_0
B4 00 12 ; getfield CoThread/id I
B8 00 19 ; invokestatic java/lang/String/valueOf(I)Ljava/lang/String;
B7 00 0E ; invokespecial java/lang/StringBuffer/<init>(Ljava/lang/String;)V
12 01    ; ldc " "
B6 00 0F ; invokevirtual java/lang/StringBuffer/append(Ljava/lang/String;)Ljava/lang/StringBuffer;
B6 00 18 ; invokevirtual java/lang/StringBuffer/toString()Ljava/lang/String;
B6 00 14 ; invokevirtual java/io/PrintStream/print(Ljava/lang/String;)V
2A       ; aload_0
B4 00 10 ; getfield CoThread/c LCounter;
4D       ; astore_2
2C       ; aload_2
C2       ; monitorenter
2A       ; aload_0
B4 00 10 ; getfield CoThread/c LCounter;
B6 00 11 ; invokevirtual Counter/get()I
36 04    ; istore 4
2A       ; aload_0
B4 00 1A ; getfield CoThread/w LWaiting;
2A       ; aload_0
B6 00 1B ; invokevirtual Waiting/wait(Ljava/lang/Thread;)V
2A       ; aload_0
B4 00 10 ; getfield CoThread/c LCounter;
15 04    ; iload 4
04       ; iconst_1
60       ; iadd
B6 00 15 ; invokevirtual Counter/set(I)V
2C       ; aload_2
C3       ; monitorexit
A7 00 06 ; goto Label5
2C       ; aload_2
C3       ; monitorexit
BF       ; athrow
84 01 01 ; iinc 1 1
1B       ; iload_1
10 0A    ; bipush 10
A1 FF AB ; if_icmplt Label1
2A       ; aload_0
B4 00 10 ; getfield CoThread/c LCounter;
B6 00 16 ; invokevirtual Counter/show()V
B1       ;  return
;;
00 01 ; num. of exception handler(s) = 1(d)
; handler # 1
00 30 ; start_pc
00 4C ; end_pc
00 51 ; handler_pc
00 00 ; catch_type = "" 
;;
00 01 ; num. of attr. of this code attr. = 1(d)
00 41 ; code-attr.'s attr.1(d) name="LineNumberTable"
00 00 00 2E ; length of attr.=46(d)
00 0B ; 11(d) line number(s)
00 00 00 0F ; .line 15
00 05 00 10 ; .line 16
00 0D 00 11 ; .line 17
00 29 00 12 ; .line 18
00 30 00 13 ; .line 19
00 39 00 14 ; .line 20
00 41 00 15 ; .line 21
00 4C 00 12 ; .line 18
00 54 00 0F ; .line 15
00 5D 00 18 ; .line 24
00 64 00 0E ; .line 14
;;end attribute 1(d)
;
;END method2(d) def.

;BEGIN method3(d) def.
00 09 ; access flag of method = PUBLIC + STATIC
00 4F ; method name ="main"
00 36 ; method type ="([Ljava/lang/String;)V"
;
00 01 ; num. of attribute(s), 1(d)
;;begin attribute 1(d)
00 3A ; attribute type= "Code"
00 00 00 5B ; attribute length= 91(d)
;;
00 04 ; stacks limits
00 03 ; locals limits
00 00 00 33 ; length of codes = 51(d)
;;
BB 00 03 ; new Counter
59       ; dup
B7 00 0A ; invokespecial Counter/<init>()V
4C       ; astore_1
BB 00 02 ; new CoThread
59       ; dup
03       ; iconst_0
2B       ; aload_1
B7 00 0D ; invokespecial CoThread/<init>(ILCounter;)V
4D       ; astore_2
2C       ; aload_2
B6 00 17 ; invokevirtual java/lang/Thread/start()V
BB 00 02 ; new CoThread
59       ; dup
04       ; iconst_1
2B       ; aload_1
B7 00 0D ; invokespecial CoThread/<init>(ILCounter;)V
4D       ; astore_2
2C       ; aload_2
B6 00 17 ; invokevirtual java/lang/Thread/start()V
BB 00 02 ; new CoThread
59       ; dup
05       ; iconst_2
2B       ; aload_1
B7 00 0D ; invokespecial CoThread/<init>(ILCounter;)V
4D       ; astore_2
2C       ; aload_2
B6 00 17 ; invokevirtual java/lang/Thread/start()V
B1       ; return
;;
00 00 ; num. of exception handler(s) = 0(d)
;;
00 01 ; num. of attr. of this code attr. = 1(d)
00 41 ; code-attr.'s attr.1(d) name="LineNumberTable"
00 00 00 16 ; length of attr.=22(d)
00 05 ; 5(d) line number(s)
00 00 00 1C ; .line 28
00 08 00 1E ; .line 30
00 16 00 1F ; .line 31
00 24 00 20 ; .line 32
00 32 00 1B ; .line 27
;;end attribute 1(d)
;
;END method3(d) def.

00 01 ; num. of class attribute(s)= 1(d) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;BEGIN class attribute1(d)
00 44 ; class's attr.1(d) name="SourceFile"
00 00 00 02 ; length of attr.=2(d)
00 39 ; filename="CoThread.java"
;END class attribute1(d)

;; successfully parsed.

$Id: jcf.html,v 1.1 2000-06-25 23:10:47+09 kaiya Exp $