fix bug in namespace-mapped-symbols (related to PR 10858)
svn: r18801
This commit is contained in:
parent
f6a8e78cd6
commit
1a4c78fdb2
|
@ -4459,7 +4459,7 @@ namespace_mapped_symbols(int argc, Scheme_Object *argv[])
|
||||||
}
|
}
|
||||||
|
|
||||||
if (env->rename_set)
|
if (env->rename_set)
|
||||||
scheme_list_module_rename(env->rename_set, mapped);
|
scheme_list_module_rename(env->rename_set, mapped, env->export_registry);
|
||||||
|
|
||||||
l = scheme_null;
|
l = scheme_null;
|
||||||
for (i = mapped->size; i--; ) {
|
for (i = mapped->size; i--; ) {
|
||||||
|
|
|
@ -918,7 +918,7 @@ Scheme_Object *scheme_get_kernel_modidx(void);
|
||||||
void scheme_remove_module_rename(Scheme_Object *mrn,
|
void scheme_remove_module_rename(Scheme_Object *mrn,
|
||||||
Scheme_Object *localname);
|
Scheme_Object *localname);
|
||||||
void scheme_append_module_rename(Scheme_Object *src, Scheme_Object *dest, int with_unmarshal);
|
void scheme_append_module_rename(Scheme_Object *src, Scheme_Object *dest, int with_unmarshal);
|
||||||
void scheme_list_module_rename(Scheme_Object *src, Scheme_Hash_Table *ht);
|
void scheme_list_module_rename(Scheme_Object *src, Scheme_Hash_Table *ht, Scheme_Hash_Table *export_registry);
|
||||||
|
|
||||||
Scheme_Object *scheme_rename_to_stx(Scheme_Object *rn);
|
Scheme_Object *scheme_rename_to_stx(Scheme_Object *rn);
|
||||||
Scheme_Object *scheme_stx_to_rename(Scheme_Object *stx);
|
Scheme_Object *scheme_stx_to_rename(Scheme_Object *stx);
|
||||||
|
|
|
@ -98,7 +98,6 @@ static Scheme_Object *lift_inactive_certs(Scheme_Object *o, int as_active);
|
||||||
static Scheme_Object *write_free_id_info_prefix(Scheme_Object *obj);
|
static Scheme_Object *write_free_id_info_prefix(Scheme_Object *obj);
|
||||||
static Scheme_Object *read_free_id_info_prefix(Scheme_Object *obj, Scheme_Object *insp);
|
static Scheme_Object *read_free_id_info_prefix(Scheme_Object *obj, Scheme_Object *insp);
|
||||||
|
|
||||||
|
|
||||||
#ifdef MZ_PRECISE_GC
|
#ifdef MZ_PRECISE_GC
|
||||||
static void register_traversers(void);
|
static void register_traversers(void);
|
||||||
#endif
|
#endif
|
||||||
|
@ -160,6 +159,10 @@ typedef struct Module_Renames {
|
||||||
(box (cons sym sym)) => lexical binding */
|
(box (cons sym sym)) => lexical binding */
|
||||||
} Module_Renames;
|
} Module_Renames;
|
||||||
|
|
||||||
|
static void unmarshal_rename(Module_Renames *mrn,
|
||||||
|
Scheme_Object *modidx_shift_from, Scheme_Object *modidx_shift_to,
|
||||||
|
Scheme_Hash_Table *export_registry);
|
||||||
|
|
||||||
typedef struct Module_Renames_Set {
|
typedef struct Module_Renames_Set {
|
||||||
Scheme_Object so; /* scheme_rename_table_set_type */
|
Scheme_Object so; /* scheme_rename_table_set_type */
|
||||||
char kind, sealed;
|
char kind, sealed;
|
||||||
|
@ -1764,7 +1767,8 @@ void scheme_remove_module_rename(Scheme_Object *mrn,
|
||||||
scheme_hash_set(((Module_Renames *)mrn)->free_id_renames, localname, NULL);
|
scheme_hash_set(((Module_Renames *)mrn)->free_id_renames, localname, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
void scheme_list_module_rename(Scheme_Object *set, Scheme_Hash_Table *ht)
|
void scheme_list_module_rename(Scheme_Object *set, Scheme_Hash_Table *ht,
|
||||||
|
Scheme_Hash_Table *export_registry)
|
||||||
{
|
{
|
||||||
/* Put every name mapped by src into ht: */
|
/* Put every name mapped by src into ht: */
|
||||||
Scheme_Object *pr;
|
Scheme_Object *pr;
|
||||||
|
@ -1780,6 +1784,10 @@ void scheme_list_module_rename(Scheme_Object *set, Scheme_Hash_Table *ht)
|
||||||
|
|
||||||
if (!src)
|
if (!src)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
if (src->needs_unmarshal) {
|
||||||
|
unmarshal_rename(src, NULL, NULL, export_registry);
|
||||||
|
}
|
||||||
|
|
||||||
for (t = 0; t < 2; t++) {
|
for (t = 0; t < 2; t++) {
|
||||||
if (!t)
|
if (!t)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user