Index: trunk/src/obj_arc.c =================================================================== --- trunk/src/obj_arc.c (revision 20177) +++ trunk/src/obj_arc.c (revision 20178) @@ -79,6 +79,7 @@ pcb_arc_t *new_obj; new_obj = calloc(sizeof(pcb_arc_t), 1); + new_obj->ID = pcb_create_ID_get(); new_obj->type = PCB_OBJ_ARC; new_obj->Attributes.post_change = pcb_obj_attrib_post_change; @@ -234,7 +235,6 @@ if (!Arc) return Arc; - Arc->ID = pcb_create_ID_get(); Arc->Flags = Flags; Arc->Thickness = Thickness; Arc->Clearance = Clearance; Index: trunk/src/obj_line.c =================================================================== --- trunk/src/obj_line.c (revision 20177) +++ trunk/src/obj_line.c (revision 20178) @@ -84,6 +84,7 @@ pcb_line_t *new_obj; new_obj = calloc(sizeof(pcb_line_t), 1); + new_obj->ID = pcb_create_ID_get(); new_obj->type = PCB_OBJ_LINE; new_obj->Attributes.post_change = pcb_obj_attrib_post_change; @@ -234,7 +235,6 @@ Line = pcb_line_alloc(Layer); if (!Line) return Line; - Line->ID = pcb_create_ID_get(); Line->Flags = Flags; PCB_FLAG_CLEAR(PCB_FLAG_RAT, Line); Line->Thickness = Thickness; @@ -241,6 +241,7 @@ Line->Clearance = Clearance; Line->Point1.X = X1; Line->Point1.Y = Y1; +#warning ID TODO: register points too Line->Point1.ID = pcb_create_ID_get(); Line->Point2.X = X2; Line->Point2.Y = Y2; Index: trunk/src/obj_poly.c =================================================================== --- trunk/src/obj_poly.c (revision 20177) +++ trunk/src/obj_poly.c (revision 20178) @@ -82,6 +82,7 @@ pcb_poly_t *new_obj; new_obj = calloc(sizeof(pcb_poly_t), 1); + new_obj->ID = pcb_create_ID_get(); new_obj->type = PCB_OBJ_POLY; new_obj->Attributes.post_change = pcb_obj_attrib_post_change; @@ -349,7 +350,7 @@ /* copy values */ polygon->Flags = Flags; - polygon->ID = pcb_create_ID_get(); + polygon->Clearance = Clearance; polygon->Clipped = NULL; polygon->NoHoles = NULL; @@ -401,6 +402,7 @@ /* copy values */ point->X = X; point->Y = Y; +#warning ID TODO: register points too point->ID = pcb_create_ID_get(); return point; } Index: trunk/src/obj_pstk.c =================================================================== --- trunk/src/obj_pstk.c (revision 20177) +++ trunk/src/obj_pstk.c (revision 20178) @@ -75,6 +75,7 @@ pcb_pstk_t *ps; ps = calloc(sizeof(pcb_pstk_t), 1); + ps->ID = pcb_create_ID_get(); ps->protoi = -1; ps->type = PCB_OBJ_PSTK; ps->Attributes.post_change = pcb_obj_attrib_post_change; @@ -106,7 +107,6 @@ ps->y = y; ps->Clearance = clearance; ps->Flags = Flags; - ps->ID = pcb_create_ID_get(); ps->rot = rot; ps->xmirror = xmirror; ps->smirror = smirror; Index: trunk/src/obj_rat.c =================================================================== --- trunk/src/obj_rat.c (revision 20177) +++ trunk/src/obj_rat.c (revision 20178) @@ -72,6 +72,7 @@ pcb_rat_t *new_obj; new_obj = calloc(sizeof(pcb_rat_t), 1); + new_obj->ID = pcb_create_ID_get(); new_obj->type = PCB_OBJ_RAT; pcb_rat_reg(data, new_obj); @@ -94,7 +95,6 @@ if (!Line) return Line; - Line->ID = pcb_create_ID_get(); Line->Flags = Flags; PCB_FLAG_SET(PCB_FLAG_RAT, Line); Line->Thickness = Thickness; Index: trunk/src/obj_subc.c =================================================================== --- trunk/src/obj_subc.c (revision 20177) +++ trunk/src/obj_subc.c (revision 20178) @@ -102,6 +102,7 @@ { pcb_subc_t *sc; sc = calloc(sizeof(pcb_subc_t), 1); + sc->ID = pcb_create_ID_get(); sc->Attributes.post_change = pcb_subc_attrib_post_change; sc->data = pcb_data_new(NULL); sc->type = PCB_OBJ_SUBC; @@ -113,9 +114,7 @@ pcb_subc_t *pcb_subc_new(void) { - pcb_subc_t *sc = pcb_subc_alloc(); - sc->ID = pcb_create_ID_get(); - return sc; + return pcb_subc_alloc(); } void pcb_subc_free(pcb_subc_t *sc) @@ -406,7 +405,6 @@ vtp0_init(&paste_pads); sc = pcb_subc_alloc(); - sc->ID = pcb_create_ID_get(); pcb_add_subc_to_data(buffer->Data, sc); /* create layer matches and copy objects */ Index: trunk/src/obj_text.c =================================================================== --- trunk/src/obj_text.c (revision 20177) +++ trunk/src/obj_text.c (revision 20178) @@ -83,6 +83,7 @@ pcb_text_t *new_obj; new_obj = calloc(sizeof(pcb_text_t), 1); + new_obj->ID = pcb_create_ID_get(); new_obj->type = PCB_OBJ_TEXT; new_obj->Attributes.post_change = pcb_obj_attrib_post_change; @@ -122,7 +123,6 @@ text->thickness = thickness; text->TextString = pcb_strdup(TextString); text->fid = PCBFont->id; - text->ID = pcb_create_ID_get(); pcb_add_text_on_layer(Layer, text, PCBFont);