*** empty log message ***
authorcg
Mon, 07 Apr 1997 17:28:23 +0000
changeset 168 90e39cb3fa04
parent 167 77dcbc4b2201
child 169 269f334e9f34
*** empty log message ***
Java.st
JavaClass.st
JavaClassPointerRef.st
JavaMethod.st
JavaObject.st
JavaRef.st
JavaUnresolvedClassConstant.st
JavaUnresolvedConstant.st
--- a/Java.st	Wed Mar 26 17:25:36 1997 +0000
+++ b/Java.st	Mon Apr 07 17:28:23 1997 +0000
@@ -156,6 +156,30 @@
     ]
 ! !
 
+!Java class methodsFor:'queries'!
+
+smalltalkClassFor:typeRef
+self halt.
+"/    (typeString startsWith:'[[') ifTrue:[
+"/        ^ Array
+"/    ].
+"/    (typeString startsWith:'[F') ifTrue:[
+"/        ^ FloatArray
+"/    ].
+    self halt.
+
+    "Modified: 7.4.1997 / 13:33:46 / cg"
+!
+
+smalltalkDerefType:typeString
+    (typeString startsWith:'[') ifTrue:[
+        ^ typeString copyFrom:2
+    ].
+    self halt.
+
+    "Modified: 7.4.1997 / 13:13:24 / cg"
+! !
+
 !Java class methodsFor:'registering java classes'!
 
 at:aJavaName
@@ -237,8 +261,40 @@
     "Modified: 26.3.1997 / 13:48:15 / cg"
 !
 
+flushAllJavaResources
+    self flushClasses.
+
+    ObjectMemory allObjectsDo:[:someObject |
+        someObject isBehavior ifTrue:[
+            someObject isJavaClass ifTrue:[
+                someObject setConstantPool:nil.
+                someObject setInterfaces:nil.
+                someObject setMethodDictionary:(MethodDictionary new).
+someObject fullName printCR.
+            ]
+        ].
+        (someObject isMemberOf:JavaMethod) ifTrue:[
+            someObject setJavaClass:nil.
+            someObject setExceptionTable:nil.
+        ].
+        (someObject isMemberOf:JavaUnresolvedClassConstant) ifTrue:[
+            someObject constantPool:nil
+        ].
+    ].
+    self flushClasses
+
+    "
+     Java flushAllJavaResources
+    "
+
+    "Modified: 7.4.1997 / 16:49:23 / cg"
+!
+
 flushClasses
     Classes := UnresolvedClassRefs := nil.
+    Smalltalk keys copy do:[:aKey | 
+        (aKey startsWith:'JAVA::') ifTrue:[ Smalltalk removeKey:aKey ]
+    ].
     Java_lang_String := Java_lang_Class := nil.
     JavaInterpreter releaseAllJavaResources.
     JavaUnresolvedConstant flushPatchLists.
@@ -247,7 +303,7 @@
      Java flushClasses
     "
 
-    "Modified: 26.3.1997 / 13:46:07 / cg"
+    "Modified: 7.4.1997 / 15:25:46 / cg"
 !
 
 markAllClassesUninitialized
@@ -427,6 +483,6 @@
 !Java class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /home/jv/Projects/SmalltalkX/repositories/cvs/stx/libjava/Java.st,v 1.26 1997/03/26 17:25:36 cg Exp $'
+    ^ '$Header: /home/jv/Projects/SmalltalkX/repositories/cvs/stx/libjava/Java.st,v 1.27 1997/04/07 17:28:23 cg Exp $'
 ! !
 Java initialize!
--- a/JavaClass.st	Wed Mar 26 17:25:36 1997 +0000
+++ b/JavaClass.st	Mon Apr 07 17:28:23 1997 +0000
@@ -694,8 +694,11 @@
 setInterfaces:i
     i size > 0 ifTrue:[
         interfaces := i
+    ] ifFalse:[
+        interfaces := nil
     ]
 
+    "Modified: 7.4.1997 / 15:44:53 / cg"
 !
 
 setSourceFile:aFilename
@@ -910,6 +913,6 @@
 !JavaClass class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /home/jv/Projects/SmalltalkX/repositories/cvs/stx/libjava/JavaClass.st,v 1.46 1997/03/22 14:19:50 cg Exp $'
+    ^ '$Header: /home/jv/Projects/SmalltalkX/repositories/cvs/stx/libjava/JavaClass.st,v 1.47 1997/04/07 17:25:39 cg Exp $'
 ! !
 JavaClass initialize!
--- a/JavaClassPointerRef.st	Wed Mar 26 17:25:36 1997 +0000
+++ b/JavaClassPointerRef.st	Mon Apr 07 17:28:23 1997 +0000
@@ -8,6 +8,16 @@
 
 !JavaClassPointerRef methodsFor:'accessing'!
 
+arrayClass
+    class isJavaClass ifTrue:[
+        ^ Array
+    ].
+    ^ class
+
+    "Created: 7.4.1997 / 13:46:12 / cg"
+    "Modified: 7.4.1997 / 13:47:17 / cg"
+!
+
 javaClass
     class isUnresolved ifTrue:[
         self halt.
@@ -17,8 +27,16 @@
     "Created: 25.6.1996 / 09:36:09 / cg"
 ! !
 
+!JavaClassPointerRef methodsFor:'converting'!
+
+asClassPointerRef
+     ^ self
+
+    "Created: 7.4.1997 / 13:40:42 / cg"
+! !
+
 !JavaClassPointerRef class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /home/jv/Projects/SmalltalkX/repositories/cvs/stx/libjava/JavaClassPointerRef.st,v 1.3 1997/02/07 20:36:13 cg Exp $'
+    ^ '$Header: /home/jv/Projects/SmalltalkX/repositories/cvs/stx/libjava/JavaClassPointerRef.st,v 1.4 1997/04/07 17:26:38 cg Exp $'
 ! !
--- a/JavaMethod.st	Wed Mar 26 17:25:36 1997 +0000
+++ b/JavaMethod.st	Mon Apr 07 17:28:23 1997 +0000
@@ -845,22 +845,27 @@
 !JavaMethod methodsFor:'printing & storing'!
 
 displayString
+    javaClass isNil ifTrue:[
+        ^ 'JavaMethod(???)'
+    ].
     ^ 'JavaMethod(' , javaClass name , '::' , self signatureName , ')'
+
+    "Modified: 7.4.1997 / 15:54:10 / cg"
 !
 
 printStringForBrowserWithSelector:selector
 "/    self isStatic ifTrue:[
 "/        ^ 'static ' , self signatureName
 "/    ].
-    self isBreakpointed ifTrue:[
-        ^ '!! ' , self signatureName
-    ].
+"/    self isBreakpointed ifTrue:[
+"/        ^ (LabelAndIcon '!! ' , self signatureName
+"/    ].
     name = #'<init>' ifTrue:[
         ^ self class specFromSignature:signature withName:(javaClass name).
     ].
     ^ self signatureName
 
-    "Modified: 26.3.1997 / 13:27:34 / cg"
+    "Modified: 7.4.1997 / 17:28:00 / cg"
 !
 
 shortDisplayString
@@ -1059,6 +1064,6 @@
 !JavaMethod class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /home/jv/Projects/SmalltalkX/repositories/cvs/stx/libjava/JavaMethod.st,v 1.40 1997/03/26 17:23:06 cg Exp $'
+    ^ '$Header: /home/jv/Projects/SmalltalkX/repositories/cvs/stx/libjava/JavaMethod.st,v 1.41 1997/04/07 17:25:33 cg Exp $'
 ! !
 JavaMethod initialize!
--- a/JavaObject.st	Wed Mar 26 17:25:36 1997 +0000
+++ b/JavaObject.st	Mon Apr 07 17:28:23 1997 +0000
@@ -375,6 +375,18 @@
     ^ super displayString. "/ ^ 'a JavaObject(' , self class name , ')'
 
     "Modified: 26.3.1997 / 13:44:04 / cg"
+!
+
+javaDisplayString
+    Object errorSignal handle:[:ex |
+        ex return.
+    ] do:[
+        ^ JavaObject stringFromJavaString:(self invoke:#toString).
+    ].
+
+    ^ super displayString.
+
+    "Created: 7.4.1997 / 17:38:13 / cg"
 ! !
 
 !JavaObject methodsFor:'queries'!
@@ -743,5 +755,5 @@
 !JavaObject class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /home/jv/Projects/SmalltalkX/repositories/cvs/stx/libjava/JavaObject.st,v 1.26 1997/03/26 17:23:17 cg Exp $'
+    ^ '$Header: /home/jv/Projects/SmalltalkX/repositories/cvs/stx/libjava/JavaObject.st,v 1.27 1997/04/07 17:25:44 cg Exp $'
 ! !
--- a/JavaRef.st	Wed Mar 26 17:25:36 1997 +0000
+++ b/JavaRef.st	Mon Apr 07 17:28:23 1997 +0000
@@ -48,9 +48,17 @@
 !JavaRef methodsFor:'printing & storing'!
 
 displayString
-    ^ self class name , '(class:' , class fullName , ' ; name&type: ' , nameandType displayString , ')'
+    |clsName|
+
+    class isJavaClass ifTrue:[
+        clsName := class fullName
+    ] ifFalse:[
+        clsName := class name
+    ].
+    ^ self class name , '(class:' , clsName , ' ; name&type: ' , nameandType displayString , ')'
 
     "Created: 15.4.1996 / 16:18:54 / cg"
+    "Modified: 7.4.1997 / 13:43:29 / cg"
 ! !
 
 !JavaRef methodsFor:'queries'!
@@ -82,5 +90,5 @@
 !JavaRef class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /home/jv/Projects/SmalltalkX/repositories/cvs/stx/libjava/JavaRef.st,v 1.9 1997/03/19 23:18:11 cg Exp $'
+    ^ '$Header: /home/jv/Projects/SmalltalkX/repositories/cvs/stx/libjava/JavaRef.st,v 1.10 1997/04/07 17:26:45 cg Exp $'
 ! !
--- a/JavaUnresolvedClassConstant.st	Wed Mar 26 17:25:36 1997 +0000
+++ b/JavaUnresolvedClassConstant.st	Mon Apr 07 17:28:23 1997 +0000
@@ -40,6 +40,15 @@
 
 !
 
+deref
+    (fullName startsWith:'[') ifTrue:[
+        ^ JavaUnresolvedClassConstant basicNew setFullName:(fullName copyFrom:2)
+    ].
+    self halt.
+
+    "Created: 7.4.1997 / 13:38:07 / cg"
+!
+
 fullName
     ^ fullName
 
@@ -67,6 +76,44 @@
     constantPoolIndex := slotIndex.
     nameIndex := name_index.
 
+!
+
+setFullName:aNameString
+    fullName := aNameString
+
+    "Created: 7.4.1997 / 13:37:45 / cg"
+!
+
+smalltalkArrayClass
+    (fullName startsWith:'[[') ifTrue:[
+        ^ Array
+    ].
+    (fullName startsWith:'[F') ifTrue:[
+        ^ FloatArray
+    ].
+    (fullName startsWith:'[B') ifTrue:[
+        ^ ByteArray
+    ].
+    self halt.
+
+    "Created: 7.4.1997 / 13:35:25 / cg"
+! !
+
+!JavaUnresolvedClassConstant methodsFor:'converting'!
+
+asClassPointerRef
+    (fullName startsWith:'[[') ifTrue:[
+        ^ JavaClassPointerRef class:Array nameandType:fullName
+    ].
+    (fullName startsWith:'[F') ifTrue:[
+        ^ JavaClassPointerRef class:FloatArray nameandType:fullName
+    ].
+    (fullName startsWith:'[B') ifTrue:[
+        ^ JavaClassPointerRef class:ByteArray nameandType:fullName
+    ].
+    self halt.
+
+    "Created: 7.4.1997 / 13:40:29 / cg"
 ! !
 
 !JavaUnresolvedClassConstant methodsFor:'printing & storing'!
@@ -166,5 +213,5 @@
 !JavaUnresolvedClassConstant class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /home/jv/Projects/SmalltalkX/repositories/cvs/stx/libjava/JavaUnresolvedClassConstant.st,v 1.19 1997/03/18 16:54:06 cg Exp $'
+    ^ '$Header: /home/jv/Projects/SmalltalkX/repositories/cvs/stx/libjava/JavaUnresolvedClassConstant.st,v 1.20 1997/04/07 17:26:29 cg Exp $'
 ! !
--- a/JavaUnresolvedConstant.st	Wed Mar 26 17:25:36 1997 +0000
+++ b/JavaUnresolvedConstant.st	Mon Apr 07 17:28:23 1997 +0000
@@ -86,6 +86,12 @@
     "Created: 15.4.1996 / 15:59:45 / cg"
 !
 
+constantPool:aPool
+    constantPool := aPool
+
+    "Created: 7.4.1997 / 16:13:02 / cg"
+!
+
 constantPoolIndex
     ^ constantPoolIndex
 
@@ -159,5 +165,5 @@
 !JavaUnresolvedConstant class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /home/jv/Projects/SmalltalkX/repositories/cvs/stx/libjava/JavaUnresolvedConstant.st,v 1.5 1997/02/07 20:36:09 cg Exp $'
+    ^ '$Header: /home/jv/Projects/SmalltalkX/repositories/cvs/stx/libjava/JavaUnresolvedConstant.st,v 1.6 1997/04/07 17:26:33 cg Exp $'
 ! !