If I start adding line segments to the rat lines layer, and after adding a 
segment or two but still in the middle of the command, I type a 'u', PCB core 
dumps.  The problem is that SearchObjectByLocation() is failing to find 
anything.

Here is a patch that keeps PCB from core dumping, but I think that 
SearchObjectByLocation() probably needs looking at.

Regards,
Daniel


*** pcb-20060422-orig/src/action.c      2006-04-13 04:45:40.000000000 -0700
--- pcb-20060422/src/action.c   2006-04-27 14:31:47.000000000 -0700
***************
*** 5388,5398 ****
            {
              int type;
              void *ptr1, *ptr3, *ptrtmp;
!             LineTypePtr ptr2;
!             /* this search is guranteed to succeed */
              SearchObjectByLocation (LINE_TYPE, &ptr1, &ptrtmp,
                                      &ptr3, Crosshair.AttachedLine.Point1.X,
                                      Crosshair.AttachedLine.Point1.Y, 0);
              ptr2 = (LineTypePtr) ptrtmp;
  
              /* save both ends of line */
--- 5388,5400 ----
            {
              int type;
              void *ptr1, *ptr3, *ptrtmp;
!             LineTypePtr ptr2 = NULL;
!             int retType =
                SearchObjectByLocation (LINE_TYPE, &ptr1, &ptrtmp,
                                      &ptr3, Crosshair.AttachedLine.Point1.X,
                                      Crosshair.AttachedLine.Point1.Y, 0);
+             if (NO_TYPE == retType || !ptr2)
+               return 1;
              ptr2 = (LineTypePtr) ptrtmp;
  
              /* save both ends of line */

Reply via email to