VM Maker: VMMaker.oscog-eem.2726.mcz

Previous Topic Next Topic
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

VM Maker: VMMaker.oscog-eem.2726.mcz

Eliot Miranda uploaded a new version of VMMaker to project VM Maker:

==================== Summary ====================

Name: VMMaker.oscog-eem.2726
Author: eem
Time: 10 March 2020, 12:39:57.341971 pm
UUID: d5624270-54d1-4938-aed8-fde6413afc79
Ancestors: VMMaker.oscog-eem.2725

Actally fix a bogus failing assert over-zealously added to the VMMaker.oscog-eem.2724 commit.

=============== Diff against VMMaker.oscog-eem.2725 ===============

Item was changed:
  ----- Method: SpurMemoryManager>>relocateObjStackForPlanningCompactor:andContents: (in category 'compaction') -----
  relocateObjStackForPlanningCompactor: objStack andContents: relocateContents
+ "Relocate all objStack pages that comprise objStack, including contents if requested."
- "Relocate all objStack pages that comprise objStack."
  | stackOrNil freeList next relocated result |
  objStack = nilObj ifTrue:
+ self assert: (relocateContents or: [(self rawHashBitsOf: objStack) = 0]).
- self assert: (relocateContents or: [(self isEmptyObjStack: objStack) or: [compactor isMobile: objStack]]).
  stackOrNil := objStack.
  freeList := self fetchPointer: ObjStackFreex ofObject: objStack.
  [self assert: (self numSlotsOfAny: stackOrNil) = ObjStackPageSlots.
  "There are four fixed slots in an obj stack, and a Topx of 0 indicates empty, so
    if there were 5 slots in an oop stack, full would be 2, and the last 0-rel index is 4.
+   Hence the last index is topx + fixed slots - 1, or topx + ObjStackNextx. The first
+   two slots, Topx and Myx are not object references."
-   Hence the last index is topx + fixed slots - 1, or topx + ObjStackNextx"
  next := self fetchPointer: ObjStackNextx ofObject: stackOrNil.
  relocated := compactor
  relocateObjectsInHeapEntity: stackOrNil
  from: ObjStackFreex
  to: ObjStackNextx + (relocateContents ifTrue: [self rawHashBitsOf: stackOrNil] ifFalse: [0]).
  stackOrNil = objStack ifTrue:
  [result := relocated].
  next ~= 0]
  [stackOrNil := next].
  [freeList ~= 0] whileTrue:
  [self assert: (self numSlotsOfAny: freeList) = ObjStackPageSlots.
  next := self fetchPointer: ObjStackFreex ofObject: freeList.
  relocateObjectsInHeapEntity: freeList
  from: ObjStackFreex
  to: ObjStackFreex.
  freeList := next].
+ self assert: (relocateContents or: [(self rawHashBitsOf: relocated) = 0]).
- self assert: (relocateContents or: [self isEmptyObjStack: relocated]).