[Vm-dev] VM Maker: VMMaker.oscog-eem.382.mcz
commits at source.squeak.org
commits at source.squeak.org
Mon Sep 16 16:12:35 UTC 2013
Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-eem.382.mcz
==================== Summary ====================
Name: VMMaker.oscog-eem.382
Author: eem
Time: 16 September 2013, 9:09:24.309 am
UUID: d7f6c692-a74c-4576-b156-0f379bd25d9a
Ancestors: VMMaker.oscog-eem.381
Fix smashing of nil in initSpaceForAllocationCheck:.
Make shouldRemapObj:/remapObj: cope with forwarding pointers
that are not part fo the scavenge itself.
=============== Diff against VMMaker.oscog-eem.381 ===============
Item was changed:
----- Method: Spur32BitMemoryManager>>initSpaceForAllocationCheck: (in category 'allocation') -----
initSpaceForAllocationCheck: aNewSpace
CheckObjectOverwrite ifTrue:
[aNewSpace start
+ to: aNewSpace limit - 1
- to: aNewSpace limit
by: self wordSize
do: [:p| self longAt: p put: p]]!
Item was added:
+ ----- Method: SpurMemoryManager>>isInFutureSpace: (in category 'object testing') -----
+ isInFutureSpace: objOop
+ ^objOop >= scavenger futureSpace start
+ and: [objOop < scavenger futureSpace limit]!
Item was changed:
----- Method: SpurMemoryManager>>remapObj: (in category 'generation scavenging') -----
remapObj: objOop
+ "Scavenge or simply follow objOop. Answer the new location of objOop. The
+ send should have been guarded by a send of shouldRemapOop: or shouldScavengeObj:.
+ The method is called remapObj: for compatibility with ObjectMemory."
- "Scavenge objOop. Answer the new location of objOop. Call should have been guarded by
- a send of shouldRemapOop: or shouldScavengeObj:.. The method is called remapObj: for
- compatibility with ObjectMemory."
<inline: false>
+ | resolvedObj |
+ (self isForwarded: objOop)
+ ifTrue:
+ [resolvedObj := self followForwarded: objOop.
+ (self isYoung: resolvedObj) ifFalse: "a becommed object whose target is in old space"
+ [^resolvedObj].
+ (self isInFutureSpace: resolvedObj) ifTrue: "already scavenged"
+ [^resolvedObj]]
+ ifFalse:
+ [resolvedObj := objOop].
+ ^scavenger copyAndForward: resolvedObj!
- (self isForwarded: objOop) ifTrue:
- [^self followForwarded: objOop].
- ^scavenger copyAndForward: objOop!
Item was changed:
----- Method: SpurMemoryManager>>shouldRemapObj: (in category 'generation scavenging') -----
shouldRemapObj: objOop
+ "Answer if the obj should be scavenged (or simply followed). The method is called
- "Answer if the obj should be scavenged. The method is called
shouldRemapObj: for compatibility with ObjectMemory."
+ ^(self isForwarded: objOop)
+ or: [self isYoung: objOop]!
- ^self isYoung: objOop!
Item was added:
+ ----- Method: StackInterpreterSimulator>>localSP (in category 'spur bootstrap') -----
+ localSP
+ ^localSP!
More information about the Vm-dev
mailing list