X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fruntime%2Fparse.c;h=beedc2972e949ab1998a2129fc268dc690b2d8b1;hb=dd54f9e004a0a83d1328e94648f48dcc27e0be5b;hp=a74b11f906edddb744119db60ab95e4e8d62634f;hpb=077b294463eb6819c0eba67bb8ce71ec66d61ba8;p=sbcl.git diff --git a/src/runtime/parse.c b/src/runtime/parse.c index a74b11f..beedc29 100644 --- a/src/runtime/parse.c +++ b/src/runtime/parse.c @@ -12,6 +12,7 @@ */ #include +#include #include #include @@ -31,6 +32,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 +261,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;