ObjectFileLoader.st
changeset 177 17c9b4cb2889
parent 175 f94969b034c7
child 178 7342b41b7fe7
--- a/ObjectFileLoader.st	Fri Dec 22 19:06:18 1995 +0100
+++ b/ObjectFileLoader.st	Sat Dec 23 01:16:41 1995 +0100
@@ -900,47 +900,51 @@
     |oldDummyMethod where m newHandle|
 
     PreviouslyLoadedObjects notNil ifTrue:[
-	PreviouslyLoadedObjects do:[:entry |
-	    |fileName handle|
-
-	    fileName := entry key.
-	    handle := entry value.
-	    handle moduleID:nil.
-
-	    handle isClassLibHandle ifTrue:[
-		('OBJFLOADER: reloading classes in ' , fileName , ' ...') infoPrintNL.
-		self loadObjectFile:fileName
-	    ] ifFalse:[
-		handle isMethodHandle ifTrue:[
-		    oldDummyMethod := handle method.
-		    oldDummyMethod isNil ifTrue:[
-			('OBJFLOADER: ignore obsolete (already collected) method in ' , fileName) infoPrintNL
-		    ] ifFalse:[
-			('OBJFLOADER: reloading method in ' , fileName , ' ...') infoPrintNL.
-			where := oldDummyMethod who.
-			newHandle := self loadMethodObjectFile:fileName.
-			newHandle isNil ifTrue:[
-			    ('OBJFLOADER: failed to reload method in ' , fileName , ' ...') infoPrintNL.
-			] ifFalse:[
-			    m := newHandle method.
-			    m source:(oldDummyMethod source).
-			    m package:(oldDummyMethod package).
-			    where notNil ifTrue:[
-				m == ((where at:1) compiledMethodAt:(where at:2)) ifFalse:[
-				    'OBJFLOADER: oops - loaded method installed wrong' errorPrintNL.
-				].
-			    ].
-			]
-		    ]
-		] ifFalse:[
-		    ('OBJFLOADER: oops - invalid (obsolete) objectFile handle: ' , handle printString) infoPrintNL.
-		]
-	    ]
-	].
-	PreviouslyLoadedObjects := nil
+        PreviouslyLoadedObjects do:[:entry |
+            |fileName handle cls sel|
+
+            fileName := entry key.
+            handle := entry value.
+            handle moduleID:nil.
+
+            handle isClassLibHandle ifTrue:[
+                ('OBJFLOADER: reloading classes in ' , fileName , ' ...') infoPrintNL.
+                self loadObjectFile:fileName
+            ] ifFalse:[
+                handle isMethodHandle ifTrue:[
+                    oldDummyMethod := handle method.
+                    oldDummyMethod isNil ifTrue:[
+                        ('OBJFLOADER: ignore obsolete (already collected) method in ' , fileName) infoPrintNL
+                    ] ifFalse:[
+                        ('OBJFLOADER: reloading method in ' , fileName , ' ...') infoPrintNL.
+                        where := oldDummyMethod who.
+                        newHandle := self loadMethodObjectFile:fileName.
+                        newHandle isNil ifTrue:[
+                            ('OBJFLOADER: failed to reload method in ' , fileName , ' ...') infoPrintNL.
+                        ] ifFalse:[
+                            m := newHandle method.
+                            m source:(oldDummyMethod source).
+                            m package:(oldDummyMethod package).
+                            where notNil ifTrue:[
+                                cls := where at:1.
+                                sel := where at:2.
+                                m == (cls compiledMethodAt:sel) ifFalse:[
+                                    'OBJFLOADER: oops - loaded method installed wrong' errorPrintNL.
+                                ] ifTrue:[
+                                    cls changed:#methodDictionary with:(Array with:sel with:oldDummyMethod).
+                                ]
+                            ].
+                        ]
+                    ]
+                ] ifFalse:[
+                    ('OBJFLOADER: oops - invalid (obsolete) objectFile handle: ' , handle printString) infoPrintNL.
+                ]
+            ]
+        ].
+        PreviouslyLoadedObjects := nil
     ]
 
-    "Modified: 6.12.1995 / 18:37:32 / cg"
+    "Modified: 23.12.1995 / 01:11:25 / cg"
 !
 
 rememberAllObjectFiles
@@ -2870,6 +2874,6 @@
 !ObjectFileLoader class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libcomp/ObjectFileLoader.st,v 1.68 1995-12-19 20:48:35 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libcomp/ObjectFileLoader.st,v 1.69 1995-12-23 00:16:41 cg Exp $'
 ! !
 ObjectFileLoader initialize!