A new version of Tools was added to project The Inbox:
http://source.squeak.org/inbox/Tools-ul.518.mcz==================== Summary ====================
Name: Tools-ul.518
Author: ul
Time: 3 February 2014, 6:32:58.482 pm
UUID: 83289b35-b273-47cd-a97c-7a189fb0178e
Ancestors: Tools-topa.517
PointerFinder >> #follow:from: works for weak objects with named slots. It also uses safe checks instead of #isLiteral to cut the object graph. Removed the now unused Object >> #shouldFollowOutboundPointers
=============== Diff against Tools-topa.517 ===============
Item was removed:
- ----- Method: Object>>shouldFollowOutboundPointers (in category '*Tools-Debugger') -----
- shouldFollowOutboundPointers
- (self class isPointers or: [ self isCompiledMethod ]) ifFalse: [ ^ false ].
- ^ self class isWeak not and: [ self isLiteral not ]!
Item was changed:
----- Method: PointerFinder>>follow:from: (in category 'application') -----
+ follow: anObject from: parentObject
+
+ | class |
- follow: anObject from: parentObject
anObject == goal ifTrue:
[ parents
at: anObject
put: parentObject.
^ true ].
+ class := anObject class.
+ (class isPointers or: [ anObject isCompiledMethod ]) ifFalse: [ ^false ].
+ class isWeak
+ ifTrue: [ class instSize = 0 ifTrue: [ ^false ] ]
+ ifFalse: [
+ (class instSize = 0 and: [
+ class isVariable not or: [
+ anObject basicSize = 0 ] ]) ifTrue: [ ^false ] ].
+ ((parents includesKey: anObject) or: [ class = self class ]) ifTrue: [ ^ false ].
- anObject shouldFollowOutboundPointers ifFalse: [ ^ false ].
- ((parents includesKey: anObject) or: [ anObject class = self class ]) ifTrue: [ ^ false ].
parents
at: anObject
put: parentObject.
toDoNext add: anObject.
^ false!