Fix cut-to-width in the presence of bad constants in dead code.
[sbcl.git] / src / runtime / search.c
index 7639ed1..12e1c61 100644 (file)
@@ -9,23 +9,26 @@
  * files for more information.
  */
 
-#include "runtime.h"
+#include <string.h>
+
 #include "sbcl.h"
+#include "runtime.h"
 #include "os.h"
 #include "search.h"
+#include "thread.h"
+#include "genesis/primitive-objects.h"
 
 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;
 
-        if (TypeOf(obj) == type)
+        if (widetag_of(obj) == type)
             return 1;
 
         (*start) += 2;
@@ -38,15 +41,17 @@ boolean search_for_symbol(char *name, lispobj **start, int *count)
     struct symbol *symbol;
     struct vector *symbol_name;
 
-    while (search_for_type(type_SymbolHeader, start, count)) {
+    while (search_for_type(SYMBOL_HEADER_WIDETAG, start, count)) {
         symbol = (struct symbol *)native_pointer((lispobj)*start);
-       if (LowtagOf(symbol->name) == type_OtherPointer) {
+        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) &&
-               TypeOf(symbol_name->header) == type_SimpleString &&
-               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;