X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fruntime%2Fsearch.c;h=12e1c61220c458aed634d05854b79763ecea8272;hb=4ba392170e98744f0ef0b8e08a5d42b988f1d0c9;hp=3f96bc3b3911e034dd30384ea03341c59939ea0c;hpb=cf4cb9554515c59eddbde38d1cf236339c37f55f;p=sbcl.git diff --git a/src/runtime/search.c b/src/runtime/search.c index 3f96bc3..12e1c61 100644 --- a/src/runtime/search.c +++ b/src/runtime/search.c @@ -20,12 +20,11 @@ boolean search_for_type(int type, lispobj **start, int *count) { - lispobj obj, *addr; + lispobj obj; while ((*count == -1 || (*count > 0)) && - is_valid_lisp_addr((os_vm_address_t)*start)) { + is_valid_lisp_addr((os_vm_address_t)*start)) { obj = **start; - addr = *start; if (*count != -1) *count -= 2; @@ -44,13 +43,15 @@ boolean search_for_symbol(char *name, lispobj **start, int *count) while (search_for_type(SYMBOL_HEADER_WIDETAG, start, count)) { symbol = (struct symbol *)native_pointer((lispobj)*start); - if (lowtag_of(symbol->name) == OTHER_POINTER_LOWTAG) { + if (lowtag_of(symbol->name) == OTHER_POINTER_LOWTAG) { symbol_name = (struct vector *)native_pointer(symbol->name); if (is_valid_lisp_addr((os_vm_address_t)symbol_name) && - widetag_of(symbol_name->header) == SIMPLE_BASE_STRING_WIDETAG && - strcmp((char *)symbol_name->data, name) == 0) + /* FIXME: Broken with more than one type of string + (i.e. even broken given (VECTOR NIL) */ + widetag_of(symbol_name->header) == SIMPLE_BASE_STRING_WIDETAG && + strcmp((char *)symbol_name->data, name) == 0) return 1; - } + } (*start) += 2; } return 0;