[Vm-dev] VM Maker: VMMaker.oscog.seperateMarking-WoC.3306.mcz
commits at source.squeak.org
commits at source.squeak.org
Fri Jan 13 22:51:56 UTC 2023
Tom Braun uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog.seperateMarking-WoC.3306.mcz
==================== Summary ====================
Name: VMMaker.oscog.seperateMarking-WoC.3306
Author: WoC
Time: 13 January 2023, 11:51:31.762314 pm
UUID: a08da09c-f639-428b-8c8e-6c1459ec92d2
Ancestors: VMMaker.oscog.seperateMarking-WoC.3305
protect bridge from beeing overwritten during compaction
=============== Diff against VMMaker.oscog.seperateMarking-WoC.3305 ===============
Item was changed:
----- Method: SpurIncrementalCompactingSweeper>>occupyRestOfFreeCompactedIntoSegment (in category 'incremental compact') -----
occupyRestOfFreeCompactedIntoSegment
+ "do not overwrite the bridge"
+ (self oop: currentCopyToPointer isGreaterThanOrEqualTo: segmentToFill segLimit - manager bridgeSize)
+ ifTrue: [^ self].
+
manager
initFreeChunkWithBytes: segmentToFill segSize - manager bridgeSize + segmentToFill segStart - currentCopyToPointer
at: currentCopyToPointer.
"avoid confusing spur, especially for leak checks"
manager
set: (manager objectStartingAt: currentCopyToPointer)
classIndexTo: manager wordSizeClassIndexPun
formatTo: manager wordIndexableFormat!
Item was changed:
----- Method: SpurIncrementalCompactingSweeper>>setFreeChunkOfCompactedIntoSegment (in category 'incremental compact') -----
setFreeChunkOfCompactedIntoSegment
shouldCompact ifFalse: [^ self].
+ "do not overwrite the bridge"
+ (self oop: currentCopyToPointer isGreaterThanOrEqualTo: segmentToFill segLimit - manager bridgeSize)
+ ifTrue: [^ self].
self assert: segmentToFill notNil.
+ self assert: (self oop: currentCopyToPointer isLessThan: segmentToFill segLimit - manager bridgeSize).
- self assert: (self oop: currentCopyToPointer isLessThan: (segmentToFill segLimit - manager bridgeSize)).
coInterpreter cr;
print: 'after compaction freeing from: '; printHex: currentCopyToPointer;
+ print: ' to: '; printHex: segmentToFill segStart + segmentToFill segSize - manager bridgeSize + segmentToFill segStart - currentCopyToPointer ;
- print: ' to: '; printHex: segmentToFill segSize - manager bridgeSize + segmentToFill segStart - currentCopyToPointer ;
tab; flush.
manager
addFreeChunkWithBytes: segmentToFill segSize - manager bridgeSize + segmentToFill segStart - currentCopyToPointer
at: currentCopyToPointer.
"we have compacted into segmentToFill. It is now not empty anymore and we need to look for a new one"
segmentToFill := nil
!
More information about the Vm-dev
mailing list