[Vm-dev] VM Maker: VMMaker.oscog-eem.1801.mcz
commits at source.squeak.org
commits at source.squeak.org
Thu Apr 14 04:56:36 UTC 2016
Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-eem.1801.mcz
==================== Summary ====================
Name: VMMaker.oscog-eem.1801
Author: eem
Time: 13 April 2016, 9:54:46.330833 pm
UUID: 223ff8af-cbc0-49ff-9692-0e5154d3f954
Ancestors: VMMaker.oscog-nice.1800
Fix assert and dequeueMourner for case where mournQueue is nil.
=============== Diff against VMMaker.oscog-nice.1800 ===============
Item was changed:
----- Method: SpurMemoryManager>>dequeueMourner (in category 'weakness and ephemerality') -----
dequeueMourner
"Answer the top mourner (ephemeron or weak array) from the queue or
nil if the queue is empty. We don't care about order; ephemerons are
fired in an arbitrary order based on where they are in the heap."
+ ^mournQueue ~= nilObj ifTrue:
+ [self popObjStack: mournQueue]!
- ^self popObjStack: mournQueue!
Item was changed:
----- Method: SpurMemoryManager>>queueMourner: (in category 'weakness and ephemerality') -----
queueMourner: anEphemeronOrWeakArray
"Add the ephemeron to the queue and make it non-ephemeral, to avoid subsequent firing.
Alas this means that other ephemerons on the same object not identified in this sccavenge
or GC will not fire until later. But that's life."
self assert: ((self isNonImmediate: anEphemeronOrWeakArray)
and: [(self formatOf: anEphemeronOrWeakArray) = self ephemeronFormat
or: [(self formatOf: anEphemeronOrWeakArray) = self weakArrayFormat]]).
+ self deny: (mournQueue ~= nilObj
+ and: [self is: anEphemeronOrWeakArray onObjStack: mournQueue]).
- self deny: (self is: anEphemeronOrWeakArray onObjStack: mournQueue).
self ensureRoomOnObjStackAt: MournQueueRootIndex.
self push: anEphemeronOrWeakArray onObjStack: mournQueue.
(self formatOf: anEphemeronOrWeakArray) = self ephemeronFormat ifTrue:
[self setFormatOf: anEphemeronOrWeakArray to: self nonIndexablePointerFormat]!
More information about the Vm-dev
mailing list