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

commits at source.squeak.org commits at source.squeak.org
Mon Jul 3 23:17:28 UTC 2017

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

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

Name: EToys-eem.303
Author: eem
Time: 3 July 2017, 4:16:51.503353 pm
UUID: 98b26648-e522-49a7-98db-0d8ce56f9c70
Ancestors: EToys-mt.302

Use NativeImageSegment to compute rootsIncludingPlayers.

=============== Diff against EToys-mt.302 ===============

Item was changed:
  ----- Method: Project>>okToChangeSilently (in category '*Etoys-Squeakland-release') -----
  	"Answer whether the window in which the project is housed can be dismissed -- which is destructive. We never clobber a project without confirmation"
  	| ok is list |
  	self subProjects size > 0 ifTrue:
  		[^ false].
  	ok := world isMorph not and: [world scheduledControllers size <= 1].
  	ok ifFalse: [self isMorphic ifTrue:
  		[self parent == CurrentProject 
  			ifFalse: [^ true]]].  "view from elsewhere.  just delete it."
  	ok := true.
  	ok ifFalse: [^ false].
  	world isMorph ifTrue:
  		[Smalltalk at: #WonderlandCameraMorph ifPresent:[:aClass |
  			world submorphs do:   "special release for wonderlands"
  						[:m | (m isKindOf: aClass)
  								and: [m getWonderland release]]].
  			"Remove Player classes and metaclasses owned by project"
+ 			is := NativeImageSegment new arrayOfRoots: {self}.
- 			is := ImageSegment new arrayOfRoots: (Array with: self).
  			(list := is rootsIncludingPlayers) ifNotNil:
  				[list do: [:playerCls | 
  					(playerCls respondsTo: #isMeta) ifTrue:
  						[playerCls isMeta ifFalse:
  							[playerCls removeFromSystemUnlogged]]]]].
  	self removeChangeSetIfPossible.
  	"do this last since it will render project inaccessible to #allProjects and their ilk"
  	ProjectHistory forget: self.
  	Project deletingProject: self.
  	^ true

More information about the Squeak-dev mailing list