[squeak-dev] The Trunk: Tools-eem.750.mcz

commits at source.squeak.org commits at source.squeak.org
Thu Mar 30 20:31:47 UTC 2017


Eliot Miranda uploaded a new version of Tools to project The Trunk:
http://source.squeak.org/trunk/Tools-eem.750.mcz

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

Name: Tools-eem.750
Author: eem
Time: 30 March 2017, 1:31:36.530145 pm
UUID: 2188b2e3-1681-43f0-aa6c-2df827745939
Ancestors: Tools-eem.749

Eliminate an explicit reference to MethodContext in the PointerFInder and make its access to the class of the context's receiver robust in the face of forwarders.

=============== Diff against Tools-eem.749 ===============

Item was changed:
  ----- Method: PointerExplorerWrapper>>contents (in category 'accessing') -----
  contents
  	"Return the wrappers with the objects holding references to item. Eldest objects come first, weak only referencers are at the end and have parentheses around their identity hash."
  
  	| objects weakOnlyReferences |
  	objects := self object inboundPointersExcluding: { self. self item. model }.
  	weakOnlyReferences := OrderedCollection new.
  	objects removeAllSuchThat: [ :each |
  		each class == self class 
  			or: [ each class == PointerExplorer
+ 			or: [ (each isContext
+ 				and: [ (each objectClass: each receiver) == PointerExplorer ] )
- 			or: [ (each class == MethodContext
- 				and: [ each receiver class == PointerExplorer ] )
  			or: [ (each pointsOnlyWeaklyTo: self object)
  				ifTrue: [ weakOnlyReferences add: each. true ]
  				ifFalse: [ false ] ] ] ] ].
  	 ^(objects replace: [ :each |	
  		self class with: each name: each identityHash asString model: self object ])
  		addAll: (weakOnlyReferences replace: [ :each |
  			(self class with: each name: '(', each identityHash asString, ')' model: self object)
  				weakOnly: true;
  				yourself ]);
  		yourself!



More information about the Squeak-dev mailing list