*** empty log message ***
authorcg
Wed, 26 Jun 1996 07:46:13 +0000
changeset 72 9427aa6a8528
parent 71 feb1b4907dd4
child 73 a1268823f1a4
*** empty log message ***
JavaClassReader.st
JavaMethod.st
--- 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!