[squeak-dev] The Trunk: EToys-nice.431.mcz

commits at source.squeak.org commits at source.squeak.org
Sat Mar 6 22:05:23 UTC 2021


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!



More information about the Squeak-dev mailing list