Index: trunk/src/buffer.c =================================================================== --- trunk/src/buffer.c (revision 8145) +++ trunk/src/buffer.c (revision 8146) @@ -550,12 +550,12 @@ * moves the passed object to the passed buffer and removes it * from its original place */ -void *pcb_move_obj_to_buffer(pcb_data_t *Destination, pcb_data_t *Src, int Type, void *Ptr1, void *Ptr2, void *Ptr3) +void *pcb_move_obj_to_buffer(pcb_board_t *pcb, pcb_data_t *Destination, pcb_data_t *Src, int Type, void *Ptr1, void *Ptr2, void *Ptr3) { pcb_opctx_t ctx; /* setup local identifiers used by move operations */ - ctx.buffer.pcb = PCB; + ctx.buffer.pcb = pcb; ctx.buffer.dst = Destination; ctx.buffer.src = Src; return (pcb_object_operation(&MoveBufferFunctions, &ctx, Type, Ptr1, Ptr2, Ptr3)); @@ -564,11 +564,11 @@ /* ---------------------------------------------------------------------- * Adds the passed object to the passed buffer */ -void *pcb_copy_obj_to_buffer(pcb_data_t *Destination, pcb_data_t *Src, int Type, void *Ptr1, void *Ptr2, void *Ptr3) +void *pcb_copy_obj_to_buffer(pcb_board_t *pcb, pcb_data_t *Destination, pcb_data_t *Src, int Type, void *Ptr1, void *Ptr2, void *Ptr3) { pcb_opctx_t ctx; - ctx.buffer.pcb = PCB; + ctx.buffer.pcb = pcb; ctx.buffer.dst = Destination; ctx.buffer.src = Src; return (pcb_object_operation(&AddBufferFunctions, &ctx, Type, Ptr1, Ptr2, Ptr3)); Index: trunk/src/buffer.h =================================================================== --- trunk/src/buffer.h (revision 8145) +++ trunk/src/buffer.h (revision 8146) @@ -55,8 +55,8 @@ void pcb_buffer_mirror(pcb_board_t *pcb, pcb_buffer_t *); void pcb_init_buffers(pcb_board_t *pcb); void pcb_uninit_buffers(pcb_board_t *pcb); -void *pcb_move_obj_to_buffer(pcb_data_t *, pcb_data_t *, int, void *, void *, void *); -void *pcb_copy_obj_to_buffer(pcb_data_t *, pcb_data_t *, int, void *, void *, void *); +void *pcb_move_obj_to_buffer(pcb_board_t *pcb, pcb_data_t *, pcb_data_t *, int, void *, void *, void *); +void *pcb_copy_obj_to_buffer(pcb_board_t *pcb, pcb_data_t *, pcb_data_t *, int, void *, void *, void *); /* This action is called from ActionElementAddIf() */ int pcb_act_LoadFootprint(int argc, const char **argv, pcb_coord_t x, pcb_coord_t y); Index: trunk/src/obj_elem.c =================================================================== --- trunk/src/obj_elem.c (revision 8145) +++ trunk/src/obj_elem.c (revision 8146) @@ -388,7 +388,7 @@ PCB_FLAG_SET(PCB_FLAG_ONSOLDER, Element); pcb_element_bbox(PCB->Data, Element, pcb_font(PCB, 0, 1)); pcb_buffer_clear(PCB, Buffer); - pcb_move_obj_to_buffer(Buffer->Data, PCB->Data, PCB_TYPE_ELEMENT, Element, Element, Element); + pcb_move_obj_to_buffer(PCB, Buffer->Data, PCB->Data, PCB_TYPE_ELEMENT, Element, Element, Element); pcb_set_buffer_bbox(Buffer); return (pcb_true); } Index: trunk/src/object_act.c =================================================================== --- trunk/src/object_act.c (revision 8145) +++ trunk/src/object_act.c (revision 8146) @@ -799,7 +799,7 @@ Note.Buffer = conf_core.editor.buffer_number; pcb_buffer_set_number(PCB_MAX_BUFFER - 1); pcb_buffer_clear(PCB, PCB_PASTEBUFFER); - pcb_copy_obj_to_buffer(PCB_PASTEBUFFER->Data, PCB->Data, PCB_TYPE_ELEMENT, ptr1, ptr2, ptr3); + pcb_copy_obj_to_buffer(PCB, PCB_PASTEBUFFER->Data, PCB->Data, PCB_TYPE_ELEMENT, ptr1, ptr2, ptr3); pcb_element_smash_buffer(PCB_PASTEBUFFER); PCB_PASTEBUFFER->X = 0; PCB_PASTEBUFFER->Y = 0; Index: trunk/src/undo.c =================================================================== --- trunk/src/undo.c (revision 8145) +++ trunk/src/undo.c (revision 8146) @@ -590,7 +590,7 @@ if (andDraw) pcb_erase_obj(type, ptr1, ptr2); /* in order to make this re-doable we move it to the RemoveList */ - pcb_move_obj_to_buffer(RemoveList, PCB->Data, type, ptr1, ptr2, ptr3); + pcb_move_obj_to_buffer(PCB, RemoveList, PCB->Data, type, ptr1, ptr2, ptr3); Entry->Type = PCB_UNDO_REMOVE; return (pcb_true); } @@ -631,7 +631,7 @@ if (type != PCB_TYPE_NONE) { if (andDraw) DrawRecoveredObject(type, ptr1, ptr2, ptr3); - pcb_move_obj_to_buffer(PCB->Data, RemoveList, type, ptr1, ptr2, ptr3); + pcb_move_obj_to_buffer(PCB, PCB->Data, RemoveList, type, ptr1, ptr2, ptr3); Entry->Type = PCB_UNDO_CREATE; return (pcb_true); } @@ -775,12 +775,12 @@ obj->ID = obj2->ID; obj2->ID = swap_id; - pcb_move_obj_to_buffer(RemoveList, PCB->Data, type, ptr1b, ptr2b, ptr3b); + pcb_move_obj_to_buffer(PCB, RemoveList, PCB->Data, type, ptr1b, ptr2b, ptr3b); if (andDraw) DrawRecoveredObject(Entry->Kind, ptr1, ptr2, ptr3); - obj = (pcb_any_obj_t *) pcb_move_obj_to_buffer(PCB->Data, RemoveList, type, ptr1, ptr2, ptr3); + obj = (pcb_any_obj_t *) pcb_move_obj_to_buffer(PCB, PCB->Data, RemoveList, type, ptr1, ptr2, ptr3); if (Entry->Kind == PCB_TYPE_POLYGON) pcb_poly_init_clip(PCB->Data, (pcb_layer_t *) ptr1b, (pcb_polygon_t *) obj); return (pcb_true); @@ -1232,7 +1232,7 @@ RemoveList = pcb_buffer_new(PCB); GetUndoSlot(PCB_UNDO_REMOVE, PCB_OBJECT_ID(Ptr3), Type); - pcb_move_obj_to_buffer(RemoveList, PCB->Data, Type, Ptr1, Ptr2, Ptr3); + pcb_move_obj_to_buffer(PCB, RemoveList, PCB->Data, Type, Ptr1, Ptr2, Ptr3); } /* --------------------------------------------------------------------------- @@ -1295,7 +1295,7 @@ RemoveList = pcb_buffer_new(PCB); undo = GetUndoSlot(undo_type, PCB_OBJECT_ID(Ptr2), Type); - copy = (pcb_any_obj_t *) pcb_copy_obj_to_buffer(RemoveList, PCB->Data, Type, Ptr1, Ptr2, Ptr3); + copy = (pcb_any_obj_t *) pcb_copy_obj_to_buffer(PCB, RemoveList, PCB->Data, Type, Ptr1, Ptr2, Ptr3); undo->Data.CopyID = copy->ID; }