X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fruntime%2Fruntime.h;h=91e205c12044340bfe93e4d40cbe3565f8b64888;hb=22c1de0a40df83bb5628974010a879cb2c17ff53;hp=0ee126443a9ec0f61069ccbf14362654c463cb07;hpb=9f10bc102adce15a820027777a03e49a7b7623da;p=sbcl.git diff --git a/src/runtime/runtime.h b/src/runtime/runtime.h index 0ee1264..91e205c 100644 --- a/src/runtime/runtime.h +++ b/src/runtime/runtime.h @@ -102,19 +102,15 @@ native_pointer(lispobj obj) /* Too bad ANSI C doesn't define "bool" as C++ does.. */ typedef int boolean; -/* FIXME: There seems to be no reason that SymbolValue, SetSymbolValue, - * and SymbolFunction can't be defined as (possibly inline) functions - * instead of macros. */ - -#define SymbolValue(sym) \ - (((struct symbol *)((sym)-OTHER_POINTER_LOWTAG))->value) -#define SetSymbolValue(sym,val) \ - (((struct symbol *)((sym)-OTHER_POINTER_LOWTAG))->value = (val)) +/* FIXME: There seems to be no reason that SymbolFunction can't be + * defined as (possibly inline) functions instead of macros. */ +static inline lispobj SymbolValue(u32 sym, void *thread); +static inline void SetSymbolValue(u32 sym, lispobj val, void *thread); /* This only works for static symbols. */ /* FIXME: should be called StaticSymbolFunction, right? */ #define SymbolFunction(sym) \ - (((struct fdefn *)(native_pointer(SymbolValue(sym))))->fun) + (((struct fdefn *)(native_pointer(SymbolValue(sym,0))))->fun) /* KLUDGE: As far as I can tell there's no ANSI C way of saying * "this function never returns". This is the way that you do it