From 810d6da3c8f3c01e2ebc69159fce5c379046def8 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Mon, 30 Jul 2018 07:02:59 -0600 Subject: [PATCH] cs: unbreak continuation-mark chaperones --- racket/src/cs/rumble/control.ss | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/racket/src/cs/rumble/control.ss b/racket/src/cs/rumble/control.ss index 4af02ac56a..f52a4a9e03 100644 --- a/racket/src/cs/rumble/control.ss +++ b/racket/src/cs/rumble/control.ss @@ -833,11 +833,13 @@ (define (mark-frame-update a key val) (cond - [(not a) (cons key val)] + [(not a) (if (impersonator? key) + (mark-frame-update (make-mark-frame '() #f #f) key val) + (cons key val))] [(pair? a) (if (eq? key (car a)) (cons key val) - (make-mark-frame (mark-table-add/replace (pair->mark-table a) key val) + (make-mark-frame (mark-table-add/replace* (pair->mark-table a) key val) #f #f))] [(eq? a 'empty) @@ -846,7 +848,7 @@ (current-mark-splice (mark-frame-update (current-mark-splice) key val)) 'empty] [(mark-frame? a) - (make-mark-frame (mark-table-add/replace (mark-frame-table a) key val) + (make-mark-frame (mark-table-add/replace* (mark-frame-table a) key val) (mark-frame-end-uninterupted? a) #f)]))