mirror of
https://gitlab.com/embeddable-common-lisp/ecl.git
synced 2026-01-23 04:52:42 -08:00
delete-package: remove local nickname bits
This commit is contained in:
parent
e72951826c
commit
8f7cf72636
1 changed files with 18 additions and 0 deletions
|
|
@ -646,6 +646,24 @@ cl_delete_package(cl_object p)
|
|||
ecl_unuse_package(p, ECL_CONS_CAR(l));
|
||||
}
|
||||
|
||||
/* 3) Now remove local nickname related bits. */
|
||||
while (!Null(l = p->pack.local_nicknames)) {
|
||||
cl_object nickname = ECL_CONS_CAR(l);
|
||||
si_remove_package_local_nickname(ECL_CONS_CAR(nickname), p);
|
||||
}
|
||||
|
||||
while (!Null(l = p->pack.nicknamedby)) {
|
||||
cl_object nicknaming = ECL_CONS_CAR(l);
|
||||
cl_object nicklist;
|
||||
while (!Null(nicklist = nicknaming->pack.local_nicknames)) {
|
||||
cl_object nickname = ECL_CONS_CAR(nicklist);
|
||||
if (ECL_CONS_CDR(nickname) == p) {
|
||||
si_remove_package_local_nickname(ECL_CONS_CAR(nickname), nicknaming);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ECL_WITH_GLOBAL_ENV_WRLOCK_BEGIN(ecl_process_env()) {
|
||||
for (hash = p->pack.internal, i = 0; i < hash->hash.size; i++)
|
||||
if (hash->hash.data[i].key != OBJNULL) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue