X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fruntime%2Fdynbind.c;h=93bdeb7fce5be34c195d691ecab6457eaddc99da;hb=b870615b146940f661e5d0e9069ca4e16e9f483d;hp=8a3a548882e21e690de3d26eb1603d1be5bdf0a5;hpb=6cbe4d8ba6d7bc469d03a72514c789b1f3944878;p=sbcl.git diff --git a/src/runtime/dynbind.c b/src/runtime/dynbind.c index 8a3a548..93bdeb7 100644 --- a/src/runtime/dynbind.c +++ b/src/runtime/dynbind.c @@ -17,6 +17,9 @@ #include "sbcl.h" #include "globals.h" #include "dynbind.h" +#include "genesis/symbol.h" +#include "genesis/binding.h" +#include "genesis/static-symbols.h" #if defined(__i386__) #define GetBSP() ((struct binding *)SymbolValue(BINDING_STACK_POINTER)) @@ -28,33 +31,33 @@ void bind_variable(lispobj symbol, lispobj value) { - lispobj old_value; - struct binding *binding; + lispobj old_value; + struct binding *binding; - old_value = SymbolValue(symbol); - binding = GetBSP(); - SetBSP(binding+1); + old_value = SymbolValue(symbol); + binding = GetBSP(); + SetBSP(binding+1); - binding->value = old_value; - binding->symbol = symbol; - SetSymbolValue(symbol, value); + binding->value = old_value; + binding->symbol = symbol; + SetSymbolValue(symbol, value); } void unbind(void) { - struct binding *binding; - lispobj symbol; + struct binding *binding; + lispobj symbol; - binding = GetBSP() - 1; + binding = GetBSP() - 1; - symbol = binding->symbol; + symbol = binding->symbol; - SetSymbolValue(symbol, binding->value); + SetSymbolValue(symbol, binding->value); - binding->symbol = 0; + binding->symbol = 0; - SetBSP(binding); + SetBSP(binding); } void