--- a/JavaClassReader.st Tue Jun 25 19:56:39 1996 +0000
+++ b/JavaClassReader.st Wed Jun 26 07:46:13 1996 +0000
@@ -20,7 +20,7 @@
initializeClassPath
self initializeClassPath:#('/home/cg/java/').
- self initializeClassPath:#('/home/cg/java/JDK/classes/').
+ self initializeClassPath:#('/home/cg/java/JDK/classes/' '/home/cg/java/JWS/classes' ).
"/ self initializeClassPath:#(
"/ '/phys/ibm3/java/lib/'
@@ -327,13 +327,14 @@
(super_class isMemberOf:JavaUnresolvedClassConstant) ifTrue:[
existingSuperClass := super_class resolve.
existingSuperClass isNil ifTrue:[
- super_class := self class
+ existingSuperClass := self class
loadClassLazy:(super_class fullName)
ignoring:classesbeingLoaded.
].
- super_class isNil ifTrue:[
+ existingSuperClass isNil ifTrue:[
self halt:('cannot find superclass: ' , super_class fullName).
- ]
+ ].
+ super_class := existingSuperClass
].
].
].
@@ -1195,6 +1196,6 @@
!JavaClassReader class methodsFor:'documentation'!
version
- ^ '$Header: /home/jv/Projects/SmalltalkX/repositories/cvs/stx/libjava/JavaClassReader.st,v 1.24 1996/06/25 19:55:43 cg Exp $'
+ ^ '$Header: /home/jv/Projects/SmalltalkX/repositories/cvs/stx/libjava/JavaClassReader.st,v 1.25 1996/06/26 07:46:13 cg Exp $'
! !
JavaClassReader initialize!
--- a/JavaMethod.st Tue Jun 25 19:56:39 1996 +0000
+++ b/JavaMethod.st Wed Jun 26 07:46:13 1996 +0000
@@ -1,5 +1,5 @@
CompiledCode subclass:#JavaMethod
- instanceVariableNames:'javaByteCode numArgs numLocals returnsVoid accessFlags name
+ instanceVariableNames:'javaByteCode numArgs numLocals returnType accessFlags name
signature exceptionTable lineNumberTable javaClass numStack'
classVariableNames:'SignatureTypeCodes'
poolDictionaries:''
@@ -182,8 +182,8 @@
"
!
-returnsVoidFromSignature:aSignature
- "given a signature, return true if it returns void, false if not"
+returnTypeFromSignature:aSignature
+ "given a signature, return its type as a string"
|s argSpec retvalSpec|
@@ -194,7 +194,19 @@
s next ~~ $) ifTrue:[self halt. ^ true].
- ^ (self retvalSpecFromStream:s) = 'void'
+ ^ (self retvalSpecFromStream:s)
+
+ "
+ JavaMethod returnTypeFromSignature:'(LObject;)V'
+ JavaMethod returnTypeFromSignature:'(BB)S'
+ JavaMethod returnTypeFromSignature:'()J'
+ "
+!
+
+returnsVoidFromSignature:aSignature
+ "given a signature, return true if it returns void, false if not"
+
+ ^ (self returnTypeFromSignature:aSignature) = 'void'
"
JavaMethod returnsVoidFromSignature:'(LObject;)V'
@@ -207,8 +219,8 @@
|argSpec spec|
- s atEnd ifTrue:[self halt. ^ 'void'].
- s peek == $V ifTrue:[^ 'void'].
+ s atEnd ifTrue:[self halt. ^ #void].
+ s peek == $V ifTrue:[^ #void].
^ self fieldTypeFromStream:s
!
@@ -305,8 +317,12 @@
!
+returnsLong
+ ^ returnType == #long
+!
+
returnsVoid
- ^ returnsVoid
+ ^ returnType == #void
!
setAccessFlags:flags
@@ -362,7 +378,7 @@
signature := aString asSymbol.
self numberOfMethodArgs:(self class numArgsFromSignature:aString).
- returnsVoid := self class returnsVoidFromSignature:aString.
+ returnType := self class returnTypeFromSignature:aString.
"Created: 16.4.1996 / 11:34:29 / cg"
!
@@ -503,6 +519,6 @@
!JavaMethod class methodsFor:'documentation'!
version
- ^ '$Header: /home/jv/Projects/SmalltalkX/repositories/cvs/stx/libjava/JavaMethod.st,v 1.15 1996/06/24 15:31:59 cg Exp $'
+ ^ '$Header: /home/jv/Projects/SmalltalkX/repositories/cvs/stx/libjava/JavaMethod.st,v 1.16 1996/06/26 07:45:57 cg Exp $'
! !
JavaMethod initialize!