Tools__ClassList.st
branchjv
changeset 13324 25c21416babd
parent 12650 e0f607754b9a
child 13357 35c83ecbcb22
--- 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