--- a/JavaClassRegistry.st Wed May 22 00:27:53 2013 +0100
+++ b/JavaClassRegistry.st Wed May 22 21:15:02 2013 +0100
@@ -301,6 +301,26 @@
!JavaClassRegistry methodsFor:'registering'!
+registerBuiltIn: class
+ | nm |
+
+ nm := class name.
+ nm == #'java.lang.Object' ifTrue:[
+ java_lang_Object := class.
+ ^self.
+ ].
+ nm == #'java.lang.System' ifTrue:[
+ java_lang_System := class.
+ ^self.
+ ].
+ nm == #'java.lang.Class' ifTrue:[
+ java_lang_Class := class.
+ ^self.
+ ].
+
+ "Created: / 22-05-2013 / 20:40:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
registerClass: newClass
| classes oldClass |
@@ -338,11 +358,15 @@
classes := loaders at: newClass classLoader put: Dictionary new.
].
classes at: newClass name put: newClass.
+ newClass isBuiltInClass ifTrue:[
+ self assert: newClass classLoader isNil. "/must be loaded by primordial CL...
+ self registerBuiltIn: newClass.
+ ].
self registerClassInSmalltalk: newClass notify: true.
"Created: / 23-10-2011 / 11:53:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
"Modified: / 02-11-2011 / 18:40:52 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
- "Modified: / 08-02-2013 / 00:54:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 22-05-2013 / 20:40:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
registerClassInSmalltalk: javaclass notify: doNotify
@@ -412,6 +436,7 @@
| classes |
self assert: (oldClass name includes: $.) not.
+ self assert: (oldClass isBuiltInClass not).
self unregisterClassInSmalltalk: oldClass notify: true.
classes := loaders at: oldClass classLoader ifAbsent: nil.
classes notNil ifTrue:[
@@ -419,6 +444,7 @@
].
"Created: / 04-04-2012 / 02:43:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 22-05-2013 / 20:41:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
unregisterClassInSmalltalk: javaclass notify: doNotify