summaryrefslogtreecommitdiffstats
path: root/lib.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib.c')
-rw-r--r--lib.c20
1 files changed, 11 insertions, 9 deletions
diff --git a/lib.c b/lib.c
index 8094f678..f8ba4f6f 100644
--- a/lib.c
+++ b/lib.c
@@ -1103,16 +1103,17 @@ val make_sym(val name)
val make_package(val name)
{
- if (find_package(name))
+ if (find_package(name)) {
uw_throwf(error_s, lit("make_package: ~a exists already"), name, nao);
+ } else {
+ val obj = make_obj();
+ obj->pk.type = PKG;
+ obj->pk.name = name;
+ obj->pk.symhash = make_hash(nil, nil);
- val obj = make_obj();
- obj->pk.type = PKG;
- obj->pk.name = name;
- obj->pk.symhash = make_hash(nil, nil);
-
- push(cons(name, obj), &packages);
- return obj;
+ push(cons(name, obj), &packages);
+ return obj;
+ }
}
val find_package(val name)
@@ -1123,6 +1124,7 @@ val find_package(val name)
val intern(val str, val package)
{
val new_p;
+ val *place;
if (nullp(package)) {
package = user_package;
@@ -1134,7 +1136,7 @@ val intern(val str, val package)
type_check (package, PKG);
- val *place = gethash_l(package->pk.symhash, str, &new_p);
+ place = gethash_l(package->pk.symhash, str, &new_p);
if (!new_p) {
return *place;