X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fruntime%2Fbacktrace.c;h=18f93a021c4a2fce6a2c98e68b8fa28a5651b9eb;hb=7f0f521aa3f6b45259c5dfd5f7f11adcd1a7cac6;hp=78955973f1eb5c23f940b3af358ff3c65e1ad69c;hpb=81cfdf526490d642c73602ebac9bcacb8af644e1;p=sbcl.git diff --git a/src/runtime/backtrace.c b/src/runtime/backtrace.c index 7895597..18f93a0 100644 --- a/src/runtime/backtrace.c +++ b/src/runtime/backtrace.c @@ -66,14 +66,14 @@ code_pointer(lispobj object) headerp = (lispobj *) native_pointer(object); header = *headerp; - type = TypeOf(header); + type = widetag_of(header); switch (type) { - case type_CodeHeader: + case CODE_HEADER_WIDETAG: break; - case type_ReturnPcHeader: - case type_FunctionHeader: - case type_ClosureFunctionHeader: + case RETURN_PC_HEADER_WIDETAG: + case SIMPLE_FUN_HEADER_WIDETAG: + case CLOSURE_FUN_HEADER_WIDETAG: len = HEADER_LENGTH(header); if (len == 0) headerp = NULL; @@ -90,7 +90,6 @@ code_pointer(lispobj object) static boolean cs_valid_pointer_p(struct call_frame *pointer) { - /* lose("stub: hasn't been updated for X86"); */ return (((char *) CONTROL_STACK_START <= (char *) pointer) && ((char *) pointer < (char *) current_control_stack_pointer)); } @@ -113,8 +112,8 @@ call_info_from_context(struct call_info *info, os_context_t *context) unsigned long pc; info->interrupted = 1; - if (LowtagOf(*os_context_register_addr(context, reg_CODE)) - == type_FunctionPointer) { + if (lowtag_of(*os_context_register_addr(context, reg_CODE)) + == FUN_POINTER_LOWTAG) { /* We tried to call a function, but crapped out before $CODE could * be fixed up. Probably an undefined function. */ info->frame = @@ -207,7 +206,7 @@ backtrace(int nframes) if (info.code != (struct code *) 0) { lispobj function; - printf("CODE: 0x%08X, ", (unsigned long) info.code | type_OtherPointer); + printf("CODE: 0x%08X, ", (unsigned long) info.code | OTHER_POINTER_LOWTAG); #ifndef alpha function = info.code->entry_points; @@ -215,24 +214,24 @@ backtrace(int nframes) function = ((struct code *)info.code)->entry_points; #endif while (function != NIL) { - struct function *header; + struct simple_fun *header; lispobj name; - header = (struct function *) native_pointer(function); + header = (struct simple_fun *) native_pointer(function); name = header->name; - if (LowtagOf(name) == type_OtherPointer) { + if (lowtag_of(name) == OTHER_POINTER_LOWTAG) { lispobj *object; object = (lispobj *) native_pointer(name); - if (TypeOf(*object) == type_SymbolHeader) { + if (widetag_of(*object) == SYMBOL_HEADER_WIDETAG) { struct symbol *symbol; symbol = (struct symbol *) object; object = (lispobj *) native_pointer(symbol->name); } - if (TypeOf(*object) == type_SimpleString) { + if (widetag_of(*object) == SIMPLE_STRING_WIDETAG) { struct vector *string; string = (struct vector *) object;