[squeak-dev] The Inbox: System-lrnp.1354.mcz
commits at source.squeak.org
commits at source.squeak.org
Wed May 25 03:29:35 UTC 2022
A new version of System was added to project The Inbox:
http://source.squeak.org/inbox/System-lrnp.1354.mcz
==================== Summary ====================
Name: System-lrnp.1354
Author: lrnp
Time: 24 May 2022, 9:29:31.051778 pm
UUID: fee3cca0-bd5c-4b98-b203-c94d275c3467
Ancestors: System-ct.1353
complements Environments-lrnp.85
=============== Diff against System-ct.1353 ===============
Item was changed:
----- Method: SmalltalkImage>>fixObsoleteReferences (in category 'housekeeping') -----
fixObsoleteReferences
"Smalltalk fixObsoleteReferences"
Smalltalk garbageCollect; garbageCollect.
Preference allInstances do: [:each || informee realName newInformee |
informee := each instVarNamed: #changeInformee.
((informee isKindOf: Behavior)
and: [informee isObsolete])
ifTrue: [
Transcript show: 'Preference: '; show: each name; cr.
realName := (informee name copyReplaceAll: 'AnObsolete' with: '') asSymbol.
newInformee := (informee environment declarationOf: realName) value.
each instVarNamed: #changeInformee put: newInformee]].
+
+ globals sweepObsoleteClassReferences.
CompiledMethod allInstances do: [:method |
| obsoleteBindings |
obsoleteBindings := method literals select: [:literal |
literal isVariableBinding
and: [literal value isBehavior
and: [literal value isObsolete]]].
obsoleteBindings do: [:binding |
| obsName realName realClass |
obsName := binding value name.
Transcript show: 'Binding: '; show: obsName; cr.
realName := obsName copyReplaceAll: 'AnObsolete' with: ''.
realClass := Smalltalk at: realName asSymbol ifAbsent: [UndefinedObject].
binding isSpecialWriteBinding
ifTrue: [binding privateSetKey: binding key value: realClass]
ifFalse: [binding key: binding key value: realClass]]].
Behavior flushObsoleteSubclasses.
Smalltalk garbageCollect; garbageCollect.
!
More information about the Squeak-dev
mailing list
|