Index: trunk/src/extobj.h =================================================================== --- trunk/src/extobj.h (revision 25604) +++ trunk/src/extobj.h (revision 25605) @@ -29,7 +29,7 @@ #include -#include "obj_common.h" +#include "obj_subc.h" #include "draw.h" @@ -38,7 +38,7 @@ struct pcb_extobj_s { /* static data - filled in by the extobj code */ const char *name; - void (*draw)(pcb_draw_info_t *info, pcb_any_obj_t *obj); + void (*draw)(pcb_draw_info_t *info, pcb_subc_t *obj); /* dynamic data - filled in by core */ int idx; @@ -56,7 +56,7 @@ extern int pcb_extobj_invalid; /* this changes upon each new extobj reg, forcing the caches to be invalidated eventually */ extern vtp0_t pcb_extobj_i2o; /* extobj_idx -> (pcb_ext_obj_t *) */ -PCB_INLINE pcb_extobj_t *pcb_extobj_get(pcb_any_obj_t *obj) +PCB_INLINE pcb_extobj_t *pcb_extobj_get(pcb_subc_t *obj) { pcb_extobj_t **eo; Index: trunk/src/obj_common.c =================================================================== --- trunk/src/obj_common.c (revision 25604) +++ trunk/src/obj_common.c (revision 25605) @@ -155,9 +155,6 @@ if (inv != NULL) pcb_message(PCB_MSG_ERROR, "Invalid character '%c' in terminal name (term attribute) '%s'\n", *inv, obj->term); } - else if (strcmp(name, "extobj") == 0) { - obj->extobj = value; - } else if (strcmp(name, "intconn") == 0) { long cid = 0; if (value != NULL) { Index: trunk/src/obj_common.h =================================================================== --- trunk/src/obj_common.h (revision 25604) +++ trunk/src/obj_common.h (revision 25605) @@ -185,8 +185,6 @@ #define PCB_ANY_PRIMITIVE_FIELDS \ PCB_ANY_OBJ_FIELDS; \ const char *term; \ - const char *extobj; \ - int extobj_idx; \ void *ratconn; \ unsigned char thermal; \ unsigned char intconn, intnoconn; \ Index: trunk/src/obj_subc.c =================================================================== --- trunk/src/obj_subc.c (revision 25604) +++ trunk/src/obj_subc.c (revision 25605) @@ -97,6 +97,9 @@ if (inv != NULL) pcb_message(PCB_MSG_ERROR, "Invalid character '%c' in subc refdes '%s'\n", *inv, sc->refdes); } + else if (strcmp(name, "extobj") == 0) { + sc->extobj = value; + } pcb_text_dyn_bbox_update(sc->data); } Index: trunk/src/obj_subc.h =================================================================== --- trunk/src/obj_subc.h (revision 25604) +++ trunk/src/obj_subc.h (revision 25605) @@ -44,6 +44,8 @@ struct pcb_subc_s { PCB_ANY_PRIMITIVE_FIELDS; + const char *extobj; + int extobj_idx; minuid_bin_t uid; pcb_data_t *data; htsp_t terminals;