fix unmarshaling of module-namespace information

Avoids errors that sometimes appear as "cannot redefine lifted.0".

Merge to 6.11.
This commit is contained in:
Matthew Flatt 2017-10-19 07:45:09 -06:00
parent 9e16d3f9c9
commit 78fdee6b6b
2 changed files with 3 additions and 1 deletions

View File

@ -1476,6 +1476,8 @@ static Scheme_Object *vector_to_ht(Scheme_Object *vec, int kind)
key = SCHEME_VEC_ELS(vec)[i];
val = SCHEME_VEC_ELS(vec)[i+1];
val = scheme_stx_force_delayed(val);
/* defend against bad bytecode here, too: */
if (kind) {
if (!SCHEME_INTP(key)

View File

@ -8215,7 +8215,7 @@ static void propagate_imports(Module_Begin_Expand_State *bxs,
binding = scheme_stx_lookup_stop_at_free_eq(name, phase, NULL);
if (!SCHEME_VECTORP(binding)
|| !SAME_OBJ(phase, SCHEME_VEC_ELS(binding)[2]))
scheme_signal_error("internal error: broken binding of defined id from encloding module: %V at %V = %V",
scheme_signal_error("internal error: broken binding of defined id from enclosing module: %V at %V = %V",
name, phase, binding);
v = SCHEME_VEC_ELS(binding)[1];
SCHEME_VEC_ELS(vec)[2] = v;