Levente Uzonyi uploaded a new version of Kernel to project The Trunk: http://source.squeak.org/trunk/Kernel-ul.964.mcz
==================== Summary ====================
Name: Kernel-ul.964 Author: ul Time: 2 November 2015, 4:56:32.76 am UUID: 5dbe95ce-96e3-4f4d-bdb1-520c50def26c Ancestors: Kernel-nice.963
Spur-compatible Object >> #inboundPointersExcluding:.
=============== Diff against Kernel-nice.963 ===============
Item was changed: ----- Method: Object>>inboundPointersExcluding: (in category 'tracing') ----- inboundPointersExcluding: objectsToExclude "Answer a list of all objects in the system that hold a reference to me, excluding those in the collection of objectsToExclude."
| pointers object objectsToAlwaysExclude | Smalltalk garbageCollect. pointers := OrderedCollection new. + self systemNavigation allObjectsOrNil ifNotNil: [ :allObjects | + objectsToAlwaysExclude := { + allObjects. + thisContext. + thisContext sender. + thisContext sender sender. + objectsToExclude. + }. + 1 to: allObjects size do: [ :index | + object := allObjects at: index. + (object pointsTo: self) ifTrue: [ + ((objectsToAlwaysExclude identityIncludes: object) + or: [ objectsToExclude identityIncludes: object ]) + ifFalse: [ pointers add: object ] ] ]. + ^pointers ]. "SystemNavigation >> #allObjectsDo: is inlined here with a slight modification: the marker object is pointers. This gives better results, because the value of pointers, it's inner objects and transient method contexts will not be iterated over." object := self someObject. [ object == pointers ] whileFalse: [ (object isInMemory and: [ object pointsTo: self ]) ifTrue: [ pointers add: object ]. object := object nextObject ]. objectsToAlwaysExclude := { thisContext. thisContext sender. thisContext sender sender. objectsToExclude. }. ^pointers removeAllSuchThat: [ :ea | (objectsToAlwaysExclude identityIncludes: ea) or: [ objectsToExclude identityIncludes: ea ] ]!
squeak-dev@lists.squeakfoundation.org