The Trunk: EToys-eem.303.mcz

Previous Topic Next Topic
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

The Trunk: EToys-eem.303.mcz

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