# HG changeset patch # User cg # Date 860434103 0 # Node ID 90e39cb3fa0448edc2575e4e5e21ab1becda26fa # Parent 77dcbc4b220103d667074ba8dd131d785f56b78e *** empty log message *** diff -r 77dcbc4b2201 -r 90e39cb3fa04 Java.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! diff -r 77dcbc4b2201 -r 90e39cb3fa04 JavaClass.st --- 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! diff -r 77dcbc4b2201 -r 90e39cb3fa04 JavaClassPointerRef.st --- 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 $' ! ! diff -r 77dcbc4b2201 -r 90e39cb3fa04 JavaMethod.st --- 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 = #'' 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! diff -r 77dcbc4b2201 -r 90e39cb3fa04 JavaObject.st --- 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 $' ! ! diff -r 77dcbc4b2201 -r 90e39cb3fa04 JavaRef.st --- 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 $' ! ! diff -r 77dcbc4b2201 -r 90e39cb3fa04 JavaUnresolvedClassConstant.st --- 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 $' ! ! diff -r 77dcbc4b2201 -r 90e39cb3fa04 JavaUnresolvedConstant.st --- 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 $' ! !