From 43bf186d533bd8cb79ac445b9ec74768acdda778 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Thu, 28 Jan 2010 18:49:08 +0000 Subject: [PATCH] byte zo reader to allow syntax objects within literal hash tables svn: r17867 --- src/mzscheme/src/read.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/mzscheme/src/read.c b/src/mzscheme/src/read.c index e28db07262..e7b2fff578 100644 --- a/src/mzscheme/src/read.c +++ b/src/mzscheme/src/read.c @@ -4705,6 +4705,8 @@ static Scheme_Object *read_compact(CPort *port, int use_stack) break; case CPT_STX: { + Scheme_Hash_Table *save_ht; + if (!port->ut) { Scheme_Unmarshal_Tables *ut; Scheme_Hash_Table *rht; @@ -4725,8 +4727,8 @@ static Scheme_Object *read_compact(CPort *port, int use_stack) port->ut->rns = rht; } - if (*port->ht) - scheme_ill_formed_code(port); + save_ht = *port->ht; + *port->ht = NULL; v = read_compact(port, 1); @@ -4738,6 +4740,8 @@ static Scheme_Object *read_compact(CPort *port, int use_stack) 0, 0); } + *port->ht = save_ht; + v = scheme_unmarshal_datum_to_syntax(v, port->ut, 0); scheme_num_read_syntax_objects++; if (!v)