Make (EXT:PACKAGE-LOCK) return the promised value.
authorPhilipp Marek <philipp@marek.priv.at>
Sun, 9 Mar 2014 19:35:43 +0000 (20:35 +0100)
committerPhilipp Marek <philipp@marek.priv.at>
Sun, 9 Mar 2014 19:35:43 +0000 (20:35 +0100)
The (possibly invalid!) pack.locked was returned; for STRING inputs
the field aliased to "elttype", which was eg. 0xf for t_base_strings.

src/c/package.d

index d08622e..d9b371c 100644 (file)
@@ -893,8 +893,9 @@ cl_package_shadowing_symbols(cl_object p)
 cl_object
 si_package_lock(cl_object p, cl_object t)
 {
-       bool previous = p->pack.locked;
+       bool previous;
        p = si_coerce_to_package(p);
+       previous = p->pack.locked;
        p->pack.locked = (t != ECL_NIL);
        @(return (previous? ECL_T : ECL_NIL))
 }