From 0a2f8a5b132b2f978b149b1c5d2e6c8bc5490e73 Mon Sep 17 00:00:00 2001 From: Pablo Tesone Date: Wed, 5 Jul 2023 13:37:20 +0200 Subject: [PATCH] Adding check to fix when the image is open with an older VM that corrupts the remembered set. --- smalltalksrc/VMMaker/VMRememberedSet.class.st | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/smalltalksrc/VMMaker/VMRememberedSet.class.st b/smalltalksrc/VMMaker/VMRememberedSet.class.st index 97e4ff6655..be87ec4963 100644 --- a/smalltalksrc/VMMaker/VMRememberedSet.class.st +++ b/smalltalksrc/VMMaker/VMRememberedSet.class.st @@ -164,6 +164,15 @@ VMRememberedSet >> initialize [ VMRememberedSet >> initializeRememberedSetShouldStartEmpty: shouldStartEmpty [ | obj | obj := self objectOop. + + (manager isInOldSpace: obj) + ifFalse: [ + manager logWarn: 'Remembered Set is in an invalid position %p. Signal of a corrupted root table.' _: obj. + shouldStartEmpty + ifTrue: [ + obj := manager nilObject. + manager logWarn: 'As it starts empty, we can ignore it' ]]. + obj = manager nilObject ifTrue: [obj := manager allocatePinnedSlots: 1024.