diff --git a/smalltalksrc/VMMaker/SpurMemoryManager.class.st b/smalltalksrc/VMMaker/SpurMemoryManager.class.st index 134b6d0857..c1432a06c4 100644 --- a/smalltalksrc/VMMaker/SpurMemoryManager.class.st +++ b/smalltalksrc/VMMaker/SpurMemoryManager.class.st @@ -2674,13 +2674,16 @@ SpurMemoryManager >> atLeastClassIndexHalfHeader: obj [ { #category : #'growing/shrinking memory' } SpurMemoryManager >> attemptToShrink [ + "Attempt to shrink memory after successfully reclaiming lots of memory. If there's enough memory to shrink then be sure to attept to shrink by at least growHeaqdroom because segments are typically of that size." - (totalFreeOldSpace > shrinkThreshold - and: [totalFreeOldSpace > growHeadroom - and: [segmentManager shrinkObjectMemory: (totalFreeOldSpace - growHeadroom max: growHeadroom)]]) ifTrue: - [statShrinkMemory := statShrinkMemory + 1] + + (totalFreeOldSpace > shrinkThreshold and: [ + totalFreeOldSpace > growHeadroom nand: [ + segmentManager shrinkObjectMemory: + (totalFreeOldSpace - growHeadroom max: growHeadroom) ] ]) + ifTrue: [ statShrinkMemory := statShrinkMemory + 1 ] ] { #category : #accessing }