Eliot Miranda uploaded a new version of VMMaker to project VM Maker: http://source.squeak.org/VMMaker/VMMaker.oscog-eem.559.mcz
==================== Summary ====================
Name: VMMaker.oscog-eem.559 Author: eem Time: 11 December 2013, 3:46:34.386 pm UUID: 91b925f5-c776-4549-82a7-d10b0853e0f7 Ancestors: VMMaker.oscog-eem.558
Fix snafu in markAndTraceObjStack:andContents: that spun marking first free page.
=============== Diff against VMMaker.oscog-eem.558 ===============
Item was changed: ----- Method: SpurMemoryManager>>markAndTraceObjStack:andContents: (in category 'obj stacks') ----- markAndTraceObjStack: stackOrNil andContents: markAndTraceContents "An obj stack is a stack of objects stored in a hidden root slot, such as the markStack or the ephemeronQueue. It is a linked list of segments, with the hot end at the head of the list. It is a word object. The stack pointer is in ObjStackTopx and 0 means empty." <inline: false> | index field | stackOrNil = nilObj ifTrue: [^self]. self setIsMarkedOf: stackOrNil to: true. self assert: (self numSlotsOfAny: stackOrNil) = ObjStackPageSlots. field := self fetchPointer: ObjStackNextx ofObject: stackOrNil. field ~= 0 ifTrue: [self markAndTraceObjStack: field andContents: markAndTraceContents]. field := stackOrNil. + [field := self fetchPointer: ObjStackFreex ofObject: field. - [field := self fetchPointer: ObjStackFreex ofObject: stackOrNil. field ~= 0] whileTrue: [self setIsMarkedOf: field to: true]. markAndTraceContents ifFalse: [^self]. "There are four fixed slots in an obj stack, and a Topx of 0 indicates empty, so if there were 6 slots in an oop stack, full would be 2, and the last 0-rel index is 5." index := (self fetchPointer: ObjStackTopx ofObject: stackOrNil) + ObjStackNextx. [index >= ObjStackFixedSlots] whileTrue: [field := self fetchPointer: index ofObject: stackOrNil. (self isImmediate: field) ifFalse: [self markAndTrace: field]. index := index - 1]!
vm-dev@lists.squeakfoundation.org