Bert Freudenberg uploaded a new version of Tools to project The Trunk:
http://source.squeak.org/trunk/Tools-bf.740.mcz==================== Summary ====================
Name: Tools-bf.740
Author: bf
Time: 22 December 2016, 7:44:25.785798 am
UUID: 7922bf37-7fb7-4352-9264-fb8c9a336401
Ancestors: Tools-eem.739
PointerFinder: fix error when a method's literal is found
=============== Diff against Tools-eem.739 ===============
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: [parent isCompiledMethod ifTrue: [key := 'literals?']].
- key == nil ifTrue: [(parent isCompiledMethod and: [object isVariableBinding]) ifTrue: [key := 'literals?']].
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: [key := '???'].
pointerList add: key , ': ' , object class name, (object isMorph ifTrue: [' (', object identityHash asString, ')'] ifFalse: [ String empty ]) ].
objectList add: object.
parent := object]!