X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fruntime%2Fparse.c;h=66292affd4c2c33c8371ebf66590d14836afbdb5;hb=3a340441c36832861f53fc16478607ea8ab5cb2e;hp=a74b11f906edddb744119db60ab95e4e8d62634f;hpb=077b294463eb6819c0eba67bb8ce71ec66d61ba8;p=sbcl.git diff --git a/src/runtime/parse.c b/src/runtime/parse.c index a74b11f..66292af 100644 --- a/src/runtime/parse.c +++ b/src/runtime/parse.c @@ -12,10 +12,15 @@ */ #include +#include #include -#include #include "sbcl.h" +#if defined(LISP_FEATURE_WIN32) && defined(LISP_FEATURE_SB_THREAD) +#include "pthreads_win32.h" +#else +#include +#endif #include "runtime.h" #if defined(LISP_FEATURE_SB_LDB) @@ -31,6 +36,7 @@ #include "arch.h" #include "search.h" #include "thread.h" +#include "pseudo-atomic.h" #include "genesis/simple-fun.h" #include "genesis/fdefn.h" @@ -259,13 +265,14 @@ static boolean lookup_symbol(char *name, lispobj *result) } /* Search dynamic space. */ -#ifndef LISP_FEATURE_GENCGC +#if defined(LISP_FEATURE_GENCGC) + headerptr = (lispobj *)DYNAMIC_SPACE_START; + count = (lispobj *)get_alloc_pointer() - headerptr; +#else headerptr = (lispobj *)current_dynamic_space; count = dynamic_space_free_pointer - headerptr; -#else - headerptr = (lispobj *)DYNAMIC_SPACE_START; - count = ((lispobj *)SymbolValue(ALLOCATION_POINTER,0)) - headerptr; #endif + if (search_for_symbol(name, &headerptr, &count)) { *result = make_lispobj(headerptr, OTHER_POINTER_LOWTAG); return 1;