diff --git a/smalltalksrc/VMMaker/SpurMemoryManager.class.st b/smalltalksrc/VMMaker/SpurMemoryManager.class.st index 134b6d0857..c96e42d376 100644 --- a/smalltalksrc/VMMaker/SpurMemoryManager.class.st +++ b/smalltalksrc/VMMaker/SpurMemoryManager.class.st @@ -10919,14 +10919,22 @@ SpurMemoryManager >> scavengingGC [ { #category : #'gc - scavenging' } SpurMemoryManager >> scavengingGCTenuringIf: tenuringCriterion [ + "Run the scavenger." + self assert: remapBufferCount = 0. - (self asserta: scavenger eden limit - freeStart > coInterpreter interpreterAllocationReserveBytes) ifFalse: - [coInterpreter tab; - printNum: scavenger eden limit - freeStart; space; - printNum: coInterpreter interpreterAllocationReserveBytes; space; - printNum: coInterpreter interpreterAllocationReserveBytes - (scavenger eden limit - freeStart); cr]. + (self asserta: scavenger eden limit - freeStart + > coInterpreter interpreterAllocationReserveBytes) ifTrue: [ + coInterpreter + tab; + printNum: scavenger eden limit - freeStart; + space; + printNum: coInterpreter interpreterAllocationReserveBytes; + space; + printNum: coInterpreter interpreterAllocationReserveBytes + - (scavenger eden limit - freeStart); + cr ]. self checkMemoryMap. self checkFreeSpace: GCModeNewSpace. self runLeakCheckerFor: GCModeNewSpace. @@ -10935,7 +10943,8 @@ SpurMemoryManager >> scavengingGCTenuringIf: tenuringCriterion [ preGCAction: GCModeNewSpace; "would prefer this to be in mapInterpreterOops, but compatibility with ObjectMemory dictates it goes here." - flushMethodCacheFrom: newSpaceStart to: newSpaceLimit. + flushMethodCacheFrom: newSpaceStart + to: newSpaceLimit. needGCFlag := false. gcStartUsecs := coInterpreter ioUTCMicrosecondsNow.