Nicolas Cellier uploaded a new version of EToys to project The Trunk:
http://source.squeak.org/trunk/EToys-nice.431.mcz==================== Summary ====================
Name: EToys-nice.431
Author: nice
Time: 6 March 2021, 11:05:12.703005 pm
UUID: 11b19c19-a51f-7e4b-99b2-9f0497baebb1
Ancestors: EToys-mt.430
At the time this #MultiSymbolInWrongPlace backward compatibility workaround was written (before 2009), Dictionary was a subclass of Set, so the method did also rehash every Dictionary.
Since 2010, Dictionary isNoMoreKindOf: Set, so if this workaround is of any use at all (?), restore its original intention, which is to rehash every HashedCollection.
=============== Diff against EToys-mt.430 ===============
Item was changed:
----- Method: ProjectLoading class>>loadImageSegment:fromDirectory:withProjectView:numberOfFontSubstitutes:substituteFont:mgr: (in category '*etoys') -----
loadImageSegment: morphOrList fromDirectory: aDirectoryOrNil withProjectView: existingView numberOfFontSubstitutes: numberOfFontSubstitutes substituteFont: substituteFont mgr: mgr
| proj projectsToBeDeleted ef f |
(f := (Flaps globalFlapTabWithID: 'Navigator' translated)) ifNotNil: [f hideFlap].
proj := morphOrList arrayOfRoots
detect: [:mm | mm isKindOf: Project]
ifNone: [^ nil].
numberOfFontSubstitutes > 0 ifTrue: [
proj projectParameterAt: #substitutedFont put: substituteFont].
ef := proj projectParameterAt: #eToysFont.
(ef isNil or: [ef ~= substituteFont familySizeFace]) ifTrue: [
proj projectParameterAt: #substitutedFont put: substituteFont.
].
proj projectParameters at: #MultiSymbolInWrongPlace put: false.
"Yoshiki did not put MultiSymbols into outPointers in older images!!"
morphOrList arrayOfRoots do: [:obj |
obj fixUponLoad: proj seg: morphOrList "imageSegment"].
(proj projectParameters at: #MultiSymbolInWrongPlace) ifTrue: [
+ morphOrList arrayOfRoots do: [:obj | (obj isKindOf: HashedCollection ) ifTrue: [obj rehash]]].
- morphOrList arrayOfRoots do: [:obj | (obj isKindOf: Set) ifTrue: [obj rehash]]].
proj resourceManager: mgr.
"proj versionFrom: preStream."
proj lastDirectory: aDirectoryOrNil.
proj setParent: Project current.
projectsToBeDeleted := OrderedCollection new.
existingView == #none ifFalse: [
self makeExistingView: existingView project: proj projectsToBeDeleted: projectsToBeDeleted].
ChangeSet allChangeSets add: proj changeSet.
Project current projectParameters
at: #deleteWhenEnteringNewProject
ifPresent: [ :ignored |
projectsToBeDeleted add: Project current.
Project current removeParameter: #deleteWhenEnteringNewProject.
].
projectsToBeDeleted isEmpty ifFalse: [
proj projectParameters
at: #projectsToBeDeleted
put: projectsToBeDeleted.
].
proj removeParameter: #eToysFont.
^ proj!