2 * This software is part of the SBCL system. See the README file for
5 * This software is derived from the CMU CL system, which was
6 * written at Carnegie Mellon University and released into the
7 * public domain. The software is in the public domain and is
8 * provided with absolutely no warranty. See the COPYING and CREDITS
9 * files for more information.
19 boolean search_for_type(int type, lispobj **start, int *count)
23 while ((*count == -1 || (*count > 0)) &&
24 is_valid_lisp_addr((os_vm_address_t)*start)) {
30 if (widetag_of(obj) == type)
38 boolean search_for_symbol(char *name, lispobj **start, int *count)
40 struct symbol *symbol;
41 struct vector *symbol_name;
43 while (search_for_type(SYMBOL_HEADER_WIDETAG, start, count)) {
44 symbol = (struct symbol *)native_pointer((lispobj)*start);
45 if (lowtag_of(symbol->name) == OTHER_POINTER_LOWTAG) {
46 symbol_name = (struct vector *)native_pointer(symbol->name);
47 if (is_valid_lisp_addr((os_vm_address_t)symbol_name) &&
48 widetag_of(symbol_name->header) == SIMPLE_STRING_WIDETAG &&
49 strcmp((char *)symbol_name->data, name) == 0)