[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: gEDA: PCB core dump on undo
Daniel Wisehart wrote:
> 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
The reason SearchObjectByLocation is failing is we need to search for
RATLINE_TYPE as well:
--- action.c 12 Apr 2006 22:51:02 -0000 1.81
+++ action.c 28 Apr 2006 23:32:04 -0000
@@ -5391,5 +5391,5 @@
LineTypePtr ptr2;
/* this search is guranteed to succeed */
- SearchObjectByLocation (LINE_TYPE, &ptr1, &ptrtmp,
+ SearchObjectByLocation (LINE_TYPE | RATLINE_TYPE, &ptr1,
&ptrtmp,
&ptr3,
Crosshair.AttachedLine.Point1.X,
Crosshair.AttachedLine.Point1.Y, 0);
This almost fixes it. I can add a bunch of ratline segments. I hit 'u'
and each time I do that, it undoes the last segment. This works all the
way up until I just have the initial point. One more 'u' and I segfault
again. I think the problem there is I should not be in this section of
code (Crosshair.AttachedLine.State == STATE_THIRD) anymore. So, I'll
keep looking.
-Dan