Squeak 4.5: Tools-cmm.519.mcz

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

Squeak 4.5: Tools-cmm.519.mcz

commits-2
Chris Muller uploaded a new version of Tools to project Squeak 4.5:
http://source.squeak.org/squeak45/Tools-cmm.519.mcz

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

Name: Tools-cmm.519
Author: cmm
Time: 18 February 2014, 4:17:22.819 pm
UUID: dae6bdb9-8b54-491a-a2a4-0b114f02e10d
Ancestors: Tools-cmm.518

- Fix cloning MessageSet's.
- Pointer-chaser, display the id-hash of Morph's in the path to chased object.

=============== Diff against Tools-cmm.518 ===============

Item was changed:
  ----- Method: MessageSet>>veryDeepInner: (in category 'copying') -----
  veryDeepInner: deepCopier
- "Copy all of my instance variables.  Some need to be not copied at all, but shared.  See DeepCopier class comment."
-
  super veryDeepInner: deepCopier.
+ messageList := messageList veryDeepCopyWith: deepCopier.
- messageListIndex := messageListIndex veryDeepCopyWith: deepCopier.
  editSelection := editSelection veryDeepCopyWith: deepCopier.!

Item was changed:
  ----- Method: PointerFinder>>buildList (in category 'application') -----
  buildList
  | list obj parent object key |
  list := OrderedCollection new.
  obj := goal.
 
  [list addFirst: obj.
  obj := parents at: obj ifAbsent: [].
  obj == nil] whileFalse.
  list removeFirst.
  parent := Smalltalk.
  objectList := OrderedCollection new.
  pointerList := OrderedCollection new.
  [list isEmpty]
  whileFalse:
  [object := list removeFirst.
  key := nil.
  (parent isKindOf: Dictionary)
  ifTrue: [list size >= 2
  ifTrue:
  [key := parent keyAtValue: list second ifAbsent: [].
  key == nil
  ifFalse:
  [object := list removeFirst; removeFirst.
  pointerList add: key printString , ' -> ' , object class name]]].
  key == nil
  ifTrue:
  [parent class == object ifTrue: [key := 'CLASS'].
  key == nil ifTrue: [1 to: parent class instSize do: [:i | key == nil ifTrue: [(parent instVarAt: i)
  == object ifTrue: [key := parent class allInstVarNames at: i]]]].
  key == nil ifTrue: [1 to: parent basicSize do: [:i | key == nil ifTrue: [(parent basicAt: i)
  == object ifTrue: [key := i printString]]]].
  key == nil ifTrue: [(parent isMorph and: [object isKindOf: Array]) ifTrue: [key := 'submorphs?']].
  key == nil ifTrue: [(parent isCompiledMethod and: [object isVariableBinding]) ifTrue: [key := 'literals?']].
  key == nil ifTrue: [key := '???'].
+ pointerList add: key , ': ' , object class name, (object isMorph ifTrue: [' (', object identityHash asString, ')'] ifFalse: [ String empty ]) ].
- pointerList add: key , ': ' , object class name].
  objectList add: object.
  parent := object]!