Changeset 14599


Ignore:
Timestamp:
Jan 27, 2011, 5:30:44 AM (8 years ago)
Author:
gb
Message:

In the kernel debugger's printer, don't assume that a method-function's
name is an instance (the method object itself.)

Location:
trunk/source/lisp-kernel
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/lisp-kernel/arm_print.c

    r14119 r14599  
    270270  } else {
    271271    if (lfbits & lfbits_method_mask) {
    272       LispObj
    273         slot_vector = deref(name,3),
    274         method_name = deref(slot_vector, 6),
    275         method_qualifiers = deref(slot_vector, 2),
    276         method_specializers = deref(slot_vector, 3);
    277       add_c_string("Method-Function ");
    278       sprint_lisp_object(method_name, depth);
    279       add_char(' ');
    280       if (method_qualifiers != lisp_nil) {
    281         if (cdr(method_qualifiers) == lisp_nil) {
    282           sprint_lisp_object(car(method_qualifiers), depth);
    283         } else {
    284           sprint_lisp_object(method_qualifiers, depth);
     272      if (header_subtag(header_of(name)) == subtag_instance) {
     273        LispObj
     274          slot_vector = deref(name,3),
     275          method_name = deref(slot_vector, 6),
     276          method_qualifiers = deref(slot_vector, 2),
     277          method_specializers = deref(slot_vector, 3);
     278        add_c_string("Method-Function ");
     279        sprint_lisp_object(method_name, depth);
     280        add_char(' ');
     281        if (method_qualifiers != lisp_nil) {
     282          if (cdr(method_qualifiers) == lisp_nil) {
     283            sprint_lisp_object(car(method_qualifiers), depth);
     284          } else {
     285            sprint_lisp_object(method_qualifiers, depth);
     286          }
     287        add_char(' ');
    285288        }
    286         add_char(' ');
    287       }
    288       sprint_specializers_list(method_specializers, depth);
     289        sprint_specializers_list(method_specializers, depth);
     290      } else {
     291        sprint_lisp_object(name, depth);
     292      }
    289293      add_char(' ');
    290294    } else {
  • trunk/source/lisp-kernel/ppc_print.c

    r13067 r14599  
    270270  } else {
    271271    if (lfbits & lfbits_method_mask) {
    272       LispObj
    273         slot_vector = deref(name,3),
    274         method_name = deref(slot_vector, 6),
    275         method_qualifiers = deref(slot_vector, 2),
    276         method_specializers = deref(slot_vector, 3);
    277       add_c_string("Method-Function ");
    278       sprint_lisp_object(method_name, depth);
    279       add_char(' ');
    280       if (method_qualifiers != lisp_nil) {
    281         if (cdr(method_qualifiers) == lisp_nil) {
    282           sprint_lisp_object(car(method_qualifiers), depth);
    283         } else {
    284           sprint_lisp_object(method_qualifiers, depth);
     272      if (header_subtag(header_of(name)) == subtag_instance) {
     273        LispObj
     274          slot_vector = deref(name,3),
     275          method_name = deref(slot_vector, 6),
     276          method_qualifiers = deref(slot_vector, 2),
     277          method_specializers = deref(slot_vector, 3);
     278        add_c_string("Method-Function ");
     279        sprint_lisp_object(method_name, depth);
     280        add_char(' ');
     281        if (method_qualifiers != lisp_nil) {
     282          if (cdr(method_qualifiers) == lisp_nil) {
     283            sprint_lisp_object(car(method_qualifiers), depth);
     284          } else {
     285            sprint_lisp_object(method_qualifiers, depth);
     286          }
     287          add_char(' ');
    285288        }
    286         add_char(' ');
    287       }
    288       sprint_specializers_list(method_specializers, depth);
     289        sprint_specializers_list(method_specializers, depth);
     290      } else {
     291        sprint_lisp_object(name, depth);
     292      }
    289293      add_char(' ');
    290294    } else {
  • trunk/source/lisp-kernel/x86_print.c

    r14295 r14599  
    297297  } else {
    298298    if (lfbits & lfbits_method_mask) {
    299       LispObj
    300         slot_vector = deref(name,3),
    301         method_name = deref(slot_vector, 6),
    302         method_qualifiers = deref(slot_vector, 2),
    303         method_specializers = deref(slot_vector, 3);
    304       add_c_string("Method-Function ");
    305       sprint_lisp_object(method_name, depth);
    306       add_char(' ');
    307       if (method_qualifiers != lisp_nil) {
    308         if (cdr(method_qualifiers) == lisp_nil) {
    309           sprint_lisp_object(car(method_qualifiers), depth);
    310         } else {
    311           sprint_lisp_object(method_qualifiers, depth);
     299      if (header_subtag(header_of(name)) == subtag_instance) {
     300        LispObj
     301          slot_vector = deref(name,3),
     302          method_name = deref(slot_vector, 6),
     303          method_qualifiers = deref(slot_vector, 2),
     304          method_specializers = deref(slot_vector, 3);
     305        add_c_string("Method-Function ");
     306        sprint_lisp_object(method_name, depth);
     307        add_char(' ');
     308        if (method_qualifiers != lisp_nil) {
     309          if (cdr(method_qualifiers) == lisp_nil) {
     310            sprint_lisp_object(car(method_qualifiers), depth);
     311          } else {
     312            sprint_lisp_object(method_qualifiers, depth);
     313          }
     314          add_char(' ');
    312315        }
    313         add_char(' ');
    314       }
    315       sprint_specializers_list(method_specializers, depth);
     316        sprint_specializers_list(method_specializers, depth);
     317      }
     318      else {
     319        sprint_lisp_object(name,depth);
     320      }
    316321      add_char(' ');
    317322    } else if (lfbits & lfbits_gfn_mask) {
Note: See TracChangeset for help on using the changeset viewer.