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)
|
||||
scheme_list_module_rename(env->rename_set, mapped);
|
||||
scheme_list_module_rename(env->rename_set, mapped, env->export_registry);
|
||||
|
||||
l = scheme_null;
|
||||
for (i = mapped->size; i--; ) {
|
||||
|
|
|
@ -918,7 +918,7 @@ Scheme_Object *scheme_get_kernel_modidx(void);
|
|||
void scheme_remove_module_rename(Scheme_Object *mrn,
|
||||
Scheme_Object *localname);
|
||||
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_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 *read_free_id_info_prefix(Scheme_Object *obj, Scheme_Object *insp);
|
||||
|
||||
|
||||
#ifdef MZ_PRECISE_GC
|
||||
static void register_traversers(void);
|
||||
#endif
|
||||
|
@ -160,6 +159,10 @@ typedef struct Module_Renames {
|
|||
(box (cons sym sym)) => lexical binding */
|
||||
} 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 {
|
||||
Scheme_Object so; /* scheme_rename_table_set_type */
|
||||
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);
|
||||
}
|
||||
|
||||
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: */
|
||||
Scheme_Object *pr;
|
||||
|
@ -1780,6 +1784,10 @@ void scheme_list_module_rename(Scheme_Object *set, Scheme_Hash_Table *ht)
|
|||
|
||||
if (!src)
|
||||
return;
|
||||
|
||||
if (src->needs_unmarshal) {
|
||||
unmarshal_rename(src, NULL, NULL, export_registry);
|
||||
}
|
||||
|
||||
for (t = 0; t < 2; t++) {
|
||||
if (!t)
|
||||
|
|
Loading…
Reference in New Issue
Block a user