[squeak-dev] The Trunk: EToys-eem.304.mcz

commits at source.squeak.org commits at source.squeak.org
Wed Jul 12 17:10:01 UTC 2017

Eliot Miranda uploaded a new version of EToys to project The Trunk:

==================== Summary ====================

Name: EToys-eem.304
Author: eem
Time: 12 July 2017, 10:09:25.400282 am
UUID: ae9828e4-4a18-4fb5-ad3f-027689693cfa
Ancestors: EToys-eem.303

Make allExtantPlayers robust in the presence of a newly instantiated EtoysPresenter, which is something that happens during project loading.  With this change I can now load saved projects.

=============== Diff against EToys-eem.303 ===============

Item was changed:
  ----- Method: EtoysPresenter>>allExtantPlayers (in category 'intialize') -----
  	"The initial intent here was to produce a list of Player objects associated with any Morph in the tree beneath the receiver's associatedMorph.  whether it is the submorph tree or perhaps off on unseen bookPages.  We have for the moment moved away from that initial intent, and in the current version we only deliver up players associated with the submorph tree only.  <-- this note dates from 4/21/99
  Call #flushPlayerListCache; to force recomputation."
  	| fullList |
  	playerList ifNotNil:
  		[^ playerList].
+ 	associatedMorph ifNil:
+ 		[^ #()].
  	fullList := associatedMorph allMorphs select: 
  		[:m | m player ~~ nil] thenCollect: [:m | m player].
  	fullList copy do:
  		[:aPlayer |
  			aPlayer class scripts do:
  				[:aScript |  aScript isTextuallyCoded ifFalse:
  					[aScript currentScriptEditor ifNotNil: [:ed |
  						| objectsReferredToByTiles |
  						objectsReferredToByTiles := ed allMorphs
  								[:aMorph | (aMorph isKindOf: TileMorph) and: [aMorph type == #objRef]]
  								[:aMorph | aMorph actualObject].
  						fullList addAll: objectsReferredToByTiles]]]].
  	^ playerList := fullList asSet asArray sort:
  			[:a :b | a externalName < b externalName]!

More information about the Squeak-dev mailing list