[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