--- a/JavaClassReader.st Mon May 06 10:06:41 1996 +0000
+++ b/JavaClassReader.st Mon May 06 10:07:23 1996 +0000
@@ -77,10 +77,15 @@
(i.e they are still ST-Strings).
- The class is not initialized."
- |rslt|
+ |rslt clsName|
+
+ clsName := aClassName.
+ (clsName includes:$.) ifTrue:[
+ clsName := clsName copy replaceAll:$. by:$/
+ ].
ClassPath do:[:path |
- rslt := self loadFileLazy:(path , aClassName , '.class').
+ rslt := self loadFileLazy:(path , clsName , '.class').
rslt notNil ifTrue:[^ rslt].
].
@@ -1010,6 +1015,48 @@
"Created: 15.4.1996 / 15:40:17 / cg"
!
+readLocalVariableTableAttributeFor:aJavaMethod
+ |attribute_length local_variable_table_length local_variable_table|
+
+ attribute_length := self nextU4.
+
+ local_variable_table_length := self nextU2.
+ local_variable_table_length ~~ 0 ifTrue:[
+ local_variable_table := Array new:local_variable_table_length.
+ 1 to:local_variable_table_length do:[:i |
+ |start_pc length name_index sig_index slot name signature|
+
+ start_pc := self nextU2.
+ length := self nextU2.
+ name_index := self nextU2.
+ name := nil.
+ sig_index := self nextU2.
+ signature := nil.
+ slot := self nextU2.
+
+ local_variable_table at:i put:(JavaLocalVariableTableEntry new
+ startPC:start_pc
+ length:length
+ name:name
+ signature:signature
+ slot:slot)
+ ].
+ ].
+
+ Verbose ifTrue:[Transcript showCr:'method has a localvariableTable'].
+
+ aJavaMethod setLocalVariableTable:local_variable_table.
+ ^ true
+
+ "
+ JavaClassReader readFile:'/phys/ibm3/hotjava/classes/browser/AddButton.class'
+ JavaClassReader readFile:'/phys/ibm3/hotjava/classes/java/lang/Boolean.class'
+ "
+
+ "Modified: 15.4.1996 / 15:33:28 / cg"
+ "Created: 15.4.1996 / 15:40:17 / cg"
+!
+
readMethodFor:aJavaClass
|m access_flags name_index name signature_index signature|
@@ -1090,6 +1137,6 @@
!JavaClassReader class methodsFor:'documentation'!
version
- ^ '$Header: /home/jv/Projects/SmalltalkX/repositories/cvs/stx/libjava/JavaClassReader.st,v 1.15 1996/05/03 18:54:40 cg Exp $'
+ ^ '$Header: /home/jv/Projects/SmalltalkX/repositories/cvs/stx/libjava/JavaClassReader.st,v 1.16 1996/05/06 10:06:15 cg Exp $'
! !
JavaClassReader initialize!
--- a/JavaMethod.st Mon May 06 10:06:41 1996 +0000
+++ b/JavaMethod.st Mon May 06 10:07:23 1996 +0000
@@ -251,6 +251,13 @@
"Created: 16.4.1996 / 14:55:44 / cg"
!
+lineNumberTable
+ ^ lineNumberTable
+
+ "Created: 16.4.1996 / 12:34:04 / cg"
+ "Modified: 16.4.1996 / 12:49:06 / cg"
+!
+
methodArgAndVarNames
^ ((1 to:self numArgs) collect:[:i | 'arg' , i printString])
,
@@ -330,6 +337,10 @@
"Modified: 16.4.1996 / 12:49:06 / cg"
!
+setLocalVariableTable:anArray
+ "/ localVariableTable := anArray.
+!
+
setMaxStack:max_stack maxLocals:max_locals u1:unknown1 u2:unknown2
numStack := max_stack.
numLocals := max_locals.
@@ -486,6 +497,6 @@
!JavaMethod class methodsFor:'documentation'!
version
- ^ '$Header: /home/jv/Projects/SmalltalkX/repositories/cvs/stx/libjava/JavaMethod.st,v 1.12 1996/05/06 09:02:35 cg Exp $'
+ ^ '$Header: /home/jv/Projects/SmalltalkX/repositories/cvs/stx/libjava/JavaMethod.st,v 1.13 1996/05/06 10:07:23 cg Exp $'
! !
JavaMethod initialize!
--- a/JavaUnresolvedClassConstant.st Mon May 06 10:06:41 1996 +0000
+++ b/JavaUnresolvedClassConstant.st Mon May 06 10:07:23 1996 +0000
@@ -35,7 +35,15 @@
!JavaUnresolvedClassConstant methodsFor:'resolving'!
resolve
- ^ Java classNamed:fullName.
+ |cls|
+
+ cls := Java classNamed:fullName.
+ cls isNil ifTrue:[^ self].
+
+ pool notNil ifTrue:[
+ pool at:poolIndex put:cls
+ ].
+ ^ cls
"Created: 15.4.1996 / 15:51:42 / cg"
"Modified: 15.4.1996 / 16:26:05 / cg"
@@ -61,5 +69,5 @@
!JavaUnresolvedClassConstant class methodsFor:'documentation'!
version
- ^ '$Header: /home/jv/Projects/SmalltalkX/repositories/cvs/stx/libjava/JavaUnresolvedClassConstant.st,v 1.7 1996/05/03 11:28:46 cg Exp $'
+ ^ '$Header: /home/jv/Projects/SmalltalkX/repositories/cvs/stx/libjava/JavaUnresolvedClassConstant.st,v 1.8 1996/05/06 10:07:09 cg Exp $'
! !