From cdc6ea3363ae1026bf7f5416b677e695bf88eeb6 Mon Sep 17 00:00:00 2001 From: Juan Jose Garcia Ripoll Date: Sat, 20 Mar 2010 12:12:48 +0100 Subject: [PATCH] It is necessary to check that the right symbol is being processed by UNEXPORT2, because blindly proceeding causes slight corruption of the package structure and may result in quite cryptic error messages in loosely connected pieces of code (A. Gavrilov) --- src/c/package.d | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/c/package.d b/src/c/package.d index 7b66a1197..09ca996c1 100644 --- a/src/c/package.d +++ b/src/c/package.d @@ -554,7 +554,7 @@ cl_unexport2(cl_object s, cl_object p) "Ignore lock and proceed", p, 2, s, p); PACKAGE_OP_LOCK(); x = find_symbol_inner(name, p, &intern_flag); - if (intern_flag == 0) { + if (intern_flag == 0 || x != s) { PACKAGE_OP_UNLOCK(); FEpackage_error("Cannot unexport ~S because it does not belong to package ~S.", p, 2, s, p);