fix environment -> resolved path -> module path index
This commit is contained in:
parent
b940ee8440
commit
dd585e7ff7
|
@ -2214,11 +2214,7 @@ static Scheme_Object *variable_modidx(int argc, Scheme_Object *argv[])
|
||||||
&& SCHEME_TRUEP(((Scheme_Modidx *)env->module->self_modidx)->path))
|
&& SCHEME_TRUEP(((Scheme_Modidx *)env->module->self_modidx)->path))
|
||||||
return env->module->self_modidx;
|
return env->module->self_modidx;
|
||||||
else
|
else
|
||||||
return scheme_make_modidx(scheme_make_pair(scheme_intern_symbol("quote"),
|
return scheme_resolved_module_path_to_modidx(env->module->modname);
|
||||||
scheme_make_pair(scheme_resolved_module_path_value(env->module->modname),
|
|
||||||
scheme_null)),
|
|
||||||
scheme_false,
|
|
||||||
scheme_false);
|
|
||||||
} else
|
} else
|
||||||
return env->link_midx;
|
return env->link_midx;
|
||||||
} else
|
} else
|
||||||
|
|
|
@ -4156,7 +4156,7 @@ static int same_resolved_modidx(Scheme_Object *a, Scheme_Object *b)
|
||||||
return scheme_equal(a, b);
|
return scheme_equal(a, b);
|
||||||
}
|
}
|
||||||
|
|
||||||
static Scheme_Object *resolved_module_path_to_modidx(Scheme_Object *rmp)
|
Scheme_Object *scheme_resolved_module_path_to_modidx(Scheme_Object *rmp)
|
||||||
{
|
{
|
||||||
Scheme_Object *path;
|
Scheme_Object *path;
|
||||||
|
|
||||||
|
@ -12828,7 +12828,7 @@ void parse_requires(Scheme_Object *form, int at_phase,
|
||||||
}
|
}
|
||||||
|
|
||||||
if (SAME_TYPE(SCHEME_TYPE(idx), scheme_resolved_module_path_type))
|
if (SAME_TYPE(SCHEME_TYPE(idx), scheme_resolved_module_path_type))
|
||||||
idx = resolved_module_path_to_modidx(idx);
|
idx = scheme_resolved_module_path_to_modidx(idx);
|
||||||
|
|
||||||
add_single_require(m->me, x_just_mode, x_mode, idx, rename_env,
|
add_single_require(m->me, x_just_mode, x_mode, idx, rename_env,
|
||||||
rn_set, (for_m ? for_m->rn_stx : NULL),
|
rn_set, (for_m ? for_m->rn_stx : NULL),
|
||||||
|
|
|
@ -4000,6 +4000,8 @@ Scheme_Object *scheme_intern_resolved_module_path(Scheme_Object *o);
|
||||||
Scheme_Object *scheme_resolved_module_path_value(Scheme_Object *rmp);
|
Scheme_Object *scheme_resolved_module_path_value(Scheme_Object *rmp);
|
||||||
int scheme_resolved_module_path_value_matches(Scheme_Object *rmp, Scheme_Object *o);
|
int scheme_resolved_module_path_value_matches(Scheme_Object *rmp, Scheme_Object *o);
|
||||||
|
|
||||||
|
Scheme_Object *scheme_resolved_module_path_to_modidx(Scheme_Object *rmp);
|
||||||
|
|
||||||
Scheme_Object *scheme_hash_module_variable(Scheme_Env *env, Scheme_Object *modidx,
|
Scheme_Object *scheme_hash_module_variable(Scheme_Env *env, Scheme_Object *modidx,
|
||||||
Scheme_Object *stxsym, Scheme_Object *insp,
|
Scheme_Object *stxsym, Scheme_Object *insp,
|
||||||
int pos, intptr_t mod_phase, int is_constant,
|
int pos, intptr_t mod_phase, int is_constant,
|
||||||
|
|
Loading…
Reference in New Issue
Block a user