1.0.24.28: make unbind in the runtime zero the value of the binding
authorGabor Melis <mega@hotpop.com>
Fri, 9 Jan 2009 17:47:47 +0000 (17:47 +0000)
committerGabor Melis <mega@hotpop.com>
Fri, 9 Jan 2009 17:47:47 +0000 (17:47 +0000)
... to parallel what the Lisp side does. As far as I see the rationale
for doing that (in doc/internals/specials.texinfo) does not apply here
since signals are blocked when the dynbind functions are called. That
said, instead of adding documentation let's fix it.

src/runtime/dynbind.c
version.lisp-expr

index 77dfd88..1c84e5b 100644 (file)
@@ -81,6 +81,7 @@ unbind(void *th)
     SetTlSymbolValue(symbol, binding->value,thread);
 
     binding->symbol = 0;
+    binding->value = 0;
 
     SetBSP(binding);
 }
@@ -102,6 +103,7 @@ unbind_to_here(lispobj *bsp,void *th)
                 SetTlSymbolValue(symbol, binding->value,thread);
             }
             binding->symbol = 0;
+            binding->value = 0;
         }
     }
     SetBSP(binding);
index c4c01b0..6efcedc 100644 (file)
@@ -17,4 +17,4 @@
 ;;; checkins which aren't released. (And occasionally for internal
 ;;; versions, especially for internal versions off the main CVS
 ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"1.0.24.27"
+"1.0.24.28"