--- a/Tools__ClassList.st Sat Aug 03 13:37:21 2013 +0100
+++ b/Tools__ClassList.st Mon Aug 05 10:30:37 2013 +0100
@@ -1622,43 +1622,57 @@
found := false.
aCollection isSequenceable ifFalse:[
- classes := aCollection copy.
- aCollection removeAll.
- classes do:[:cls |
- |newClass|
+ classes := aCollection copy.
+ aCollection removeAll.
+ classes do:[:cls |
+ |newClass|
- meta := cls isMeta.
- newClass := Smalltalk at:(cls theNonMetaclass name).
- newClass isNil ifTrue:[
- newClass := cls
- ] ifFalse:[
- meta ifTrue:[
- newClass := newClass class
- ]
- ].
- found := cls ~~ newClass.
- aCollection add:newClass.
- ].
+ meta := cls isMeta.
+ "/ Sigh, special care has to be taken for Java classes as
+ "/ for them, !!!!!! (Smalltalk at: javaClass name) ~~ javaClass !!!!!!
+ cls theNonMetaclass isJavaClass ifTrue:[
+ newClass := JavaVM classNamed:(cls theNonMetaclass name) definedBy: cls classLoader.
+ ] ifFalse:[
+ newClass := Smalltalk at:(cls theNonMetaclass name).
+ ].
+ newClass isNil ifTrue:[
+ newClass := cls
+ ] ifFalse:[
+ meta ifTrue:[
+ newClass := newClass class
+ ]
+ ].
+ found := cls ~~ newClass.
+ aCollection add:newClass.
+ ].
] ifTrue:[
- aCollection keysAndValuesDo:[:idx :cls |
- |newClass|
+ aCollection keysAndValuesDo:[:idx :cls |
+ |newClass|
- cls notNil ifTrue:[
- meta := cls isMeta.
- newClass := Smalltalk at:(cls theNonMetaclass name).
- newClass isNil ifTrue:[
- newClass := cls
- ] ifFalse:[
- meta ifTrue:[
- newClass := newClass class
- ]
- ].
- found := cls ~~ newClass.
- aCollection at:idx put:newClass.
- ]
- ].
+ cls notNil ifTrue:[
+ meta := cls isMeta.
+ "/ Sigh, special care has to be taken for Java classes as
+ "/ for them, !!!!!! (Smalltalk at: javaClass name) ~~ javaClass !!!!!!
+ cls theNonMetaclass isJavaClass ifTrue:[
+ newClass := JavaVM classNamed:(cls theNonMetaclass name) definedBy: cls classLoader.
+ ] ifFalse:[
+ newClass := Smalltalk at:(cls theNonMetaclass name).
+ ].
+ newClass isNil ifTrue:[
+ newClass := cls
+ ] ifFalse:[
+ meta ifTrue:[
+ newClass := newClass class
+ ]
+ ].
+ found := cls ~~ newClass.
+ aCollection at:idx put:newClass.
+ ]
+ ].
].
^ found
+
+ "Modified: / 04-08-2013 / 13:48:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
updateList