The Inbox: Tools-ul.518.mcz

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

The Inbox: Tools-ul.518.mcz

commits-2
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!