From d4ad0a20e40ec7f7ffa7907470fc7dda76e59c15 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Fri, 10 Oct 2014 17:47:31 -0600 Subject: [PATCH] macro expander: fix an internal hash-table traversal bug This bug could result in weird "cannot re-define a constant: lifted.0.2" errors, or probably even worse collsisions of definitions, but I think only in a namespace created from `module->namespace`. So far, I haven't been able to create a reasonably small test, because so many things have to line up in just the right way. Merge to v6.1.1 --- racket/src/racket/src/compenv.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/racket/src/racket/src/compenv.c b/racket/src/racket/src/compenv.c index 1f1f6c116d..db6550f6d2 100644 --- a/racket/src/racket/src/compenv.c +++ b/racket/src/racket/src/compenv.c @@ -1259,8 +1259,8 @@ int scheme_tl_id_is_sym_used(Scheme_Hash_Table *marked_names, Scheme_Object *sym scheme_hash_set(rev_ht, SCHEME_CDR(a), scheme_true); } } - scheme_hash_set(marked_names, scheme_false, (Scheme_Object *)rev_ht); } + scheme_hash_set(marked_names, scheme_false, (Scheme_Object *)rev_ht); } if (scheme_hash_get(rev_ht, sym))