From 7359a6f9d0c4df72c660e5fc1fd29ec6e5dad5b7 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Wed, 5 May 2010 07:17:58 -0600 Subject: [PATCH] fix equal? on two chaperoned values --- src/racket/src/bool.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/racket/src/bool.c b/src/racket/src/bool.c index 37c01c4498..a61ba03269 100644 --- a/src/racket/src/bool.c +++ b/src/racket/src/bool.c @@ -559,6 +559,11 @@ int is_equal (Scheme_Object *obj1, Scheme_Object *obj2, Equal_Info *eql) obj1 = SCHEME_PTR_VAL(obj1); obj2 = SCHEME_PTR_VAL(obj2); goto top; + } else if (!eql->for_chaperone && SCHEME_CHAPERONEP(obj1)) { + /* both chaperones */ + obj1 = ((Scheme_Chaperone *)obj1)->val; + obj2 = ((Scheme_Chaperone *)obj2)->val; + goto top; } else { Scheme_Equal_Proc eqlp = scheme_type_equals[SCHEME_TYPE(obj1)]; if (eqlp) {