--- 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 $'
! !