provide & use a helper to associate java.lang.class insts to javaClasses
authorcg
Fri, 23 Jan 1998 16:51:35 +0000
changeset 268 f7357f1142c8
parent 267 105b82469d81
child 269 5a946303d451
provide & use a helper to associate java.lang.class insts to javaClasses
JavaVM.st
--- a/JavaVM.st	Fri Jan 23 16:50:52 1998 +0000
+++ b/JavaVM.st	Fri Jan 23 16:51:35 1998 +0000
@@ -917,6 +917,14 @@
 
 !JavaVM class methodsFor:'helpers'!
 
+classForJavaClassObject:aJavaClassObject
+    "given java.lang.class instance, return the real class for it."
+
+    ^ JavaClasses at:aJavaClassObject ifAbsent:nil.
+
+    "Created: / 23.1.1998 / 17:44:09 / cg"
+!
+
 enteredMonitors
     |p monitors|
 
@@ -931,6 +939,26 @@
     "Created: / 2.1.1998 / 21:26:19 / cg"
 !
 
+javaClassObjectForClass:aClass
+    "given a real class, return the corresponding java.lang.class
+     instance for it."
+
+    |jClass|
+
+    jClass := JavaClasses at:aClass ifAbsent:nil.
+    jClass isNil ifTrue:[
+        "/ class must be initialized (with all of its superclasses ?).
+        aClass classInit.
+
+        JavaClasses at:aClass put:(jClass := (Java at:'java.lang.Class') new).
+        JavaClasses at:jClass put:aClass.
+    ].
+    ^ jClass
+
+    "Created: / 23.1.1998 / 17:43:38 / cg"
+    "Modified: / 23.1.1998 / 17:46:51 / cg"
+!
+
 javaThreadForSTProcess:stProcess
     |t|
 
@@ -3562,19 +3590,11 @@
 
     ('Java: defined new class: ' , newClass fullName) infoPrintCR.
 
-    jClass := JavaClasses at:newClass ifAbsent:nil.
-    jClass isNil ifTrue:[
-        "/ class must be initialized (with all of its superclasses ?).
-        newClass classInit.
-
-        JavaClasses at:newClass put:(jClass := (Java at:'java.lang.Class') new).
-        JavaClasses at:jClass put:newClass.
-    ].
-
+    jClass := self javaClassObjectForClass:newClass.
     ^ jClass
 
     "Created: / 7.1.1998 / 12:35:10 / cg"
-    "Modified: / 15.1.1998 / 00:57:08 / cg"
+    "Modified: / 23.1.1998 / 17:47:14 / cg"
 !
 
 _ClassLoader_findSystemClass0:nativeContext
@@ -3607,18 +3627,11 @@
     ].
 
     'JAVA: findSystemClass0 - loaded: ' infoPrint. class fullName infoPrintCR.
-    jClass := JavaClasses at:class ifAbsent:nil.
-    jClass isNil ifTrue:[
-        "/ class must be initialized (with all of its superclasses ?).
-        class classInit.
-
-        JavaClasses at:class put:(jClass := (Java at:'java.lang.Class') new).
-        JavaClasses at:jClass put:class.
-    ].
+    jClass := self javaClassObjectForClass:class.
     ^ jClass
 
     "Created: / 5.1.1998 / 02:53:04 / cg"
-    "Modified: / 15.1.1998 / 00:57:14 / cg"
+    "Modified: / 23.1.1998 / 17:47:30 / cg"
 !
 
 _ClassLoader_getSystemResourceAsStream0:nativeContext
@@ -3729,17 +3742,10 @@
 
     cls classInit.
 
-    jClass := JavaClasses at:cls ifAbsent:nil.
-    jClass isNil ifTrue:[
-        "/ class must be initialized (with all of its superclasses ?).
-
-        JavaClasses at:cls put:(jClass := (Java at:'java.lang.Class') new).
-        JavaClasses at:jClass put:cls.
-    ].
-
+    jClass := self javaClassObjectForClass:cls.
     ^ jClass
 
-    "Modified: / 15.1.1998 / 00:57:22 / cg"
+    "Modified: / 23.1.1998 / 17:48:00 / cg"
 !
 
 _Class_getClassLoader:nativeContext
@@ -4115,18 +4121,11 @@
     o := nativeContext receiver.
     cls := o class.
 
-    jClass := JavaClasses at:cls ifAbsent:nil.
-    jClass isNil ifTrue:[
-        "/ class must be initialized (with all of its superclasses ?).
-        cls classInit.
-
-        JavaClasses at:cls put:(jClass := (Java at:'java.lang.Class') new).
-        JavaClasses at:jClass put:cls.
-    ].
+    jClass := self javaClassObjectForClass:cls.
     ^ jClass
 
     "Created: / 6.1.1998 / 18:28:27 / cg"
-    "Modified: / 15.1.1998 / 00:57:39 / cg"
+    "Modified: / 23.1.1998 / 17:48:22 / cg"
 !
 
 _Object_hashCode:nativeContext
@@ -6011,6 +6010,6 @@
 !JavaVM class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /home/jv/Projects/SmalltalkX/repositories/cvs/stx/libjava/JavaVM.st,v 1.5 1998/01/17 20:56:15 cg Exp $'
+    ^ '$Header: /home/jv/Projects/SmalltalkX/repositories/cvs/stx/libjava/JavaVM.st,v 1.6 1998/01/23 16:51:35 cg Exp $'
 ! !
 JavaVM initialize!