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:
parent
9e16d3f9c9
commit
78fdee6b6b
|
@ -1476,6 +1476,8 @@ static Scheme_Object *vector_to_ht(Scheme_Object *vec, int kind)
|
||||||
key = SCHEME_VEC_ELS(vec)[i];
|
key = SCHEME_VEC_ELS(vec)[i];
|
||||||
val = SCHEME_VEC_ELS(vec)[i+1];
|
val = SCHEME_VEC_ELS(vec)[i+1];
|
||||||
|
|
||||||
|
val = scheme_stx_force_delayed(val);
|
||||||
|
|
||||||
/* defend against bad bytecode here, too: */
|
/* defend against bad bytecode here, too: */
|
||||||
if (kind) {
|
if (kind) {
|
||||||
if (!SCHEME_INTP(key)
|
if (!SCHEME_INTP(key)
|
||||||
|
|
|
@ -8215,7 +8215,7 @@ static void propagate_imports(Module_Begin_Expand_State *bxs,
|
||||||
binding = scheme_stx_lookup_stop_at_free_eq(name, phase, NULL);
|
binding = scheme_stx_lookup_stop_at_free_eq(name, phase, NULL);
|
||||||
if (!SCHEME_VECTORP(binding)
|
if (!SCHEME_VECTORP(binding)
|
||||||
|| !SAME_OBJ(phase, SCHEME_VEC_ELS(binding)[2]))
|
|| !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);
|
name, phase, binding);
|
||||||
v = SCHEME_VEC_ELS(binding)[1];
|
v = SCHEME_VEC_ELS(binding)[1];
|
||||||
SCHEME_VEC_ELS(vec)[2] = v;
|
SCHEME_VEC_ELS(vec)[2] = v;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user