[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
Re: gEDA-user: PCB crash
On Mon, 16 May 2011 23:10:30 +0200
Kai-Martin Knaak <kmk@xxxxxxxxxxxx> wrote:
> Colin D Bennett wrote:
>
> >> When I load the attached footprint to the buffer, and I say "Break
> >> buffer elements to pieces" PCB segfaults:
> >
> > Confirmed with git HEAD 39dd5f6cd91ec9032c6d2e3ca543e3f8f6cf0e4a
> > on amd64 (Ubuntu 11.04).
> >
> The footprint converts fine for Peters pcb+gl (dowloaded on
> 05.04.2011) and for PCB from git (on 23.02.2011)
I bisected the bug and determined it was introduced 2011-04-30 by the
following commit:
------------------------------------------------------------
git commit: 2ce35292b9e96da38cb56878005aba20891689eb
committer: Peter Clifton <pcjc2@xxxxxxxxx>
timestamp: Sat 2011-04-30 19:19:22 +0100
message:
Convert board objects to GLists of g_slice allocated memory
This enables pointers for these objects to be immutable during their
lifetime, which is a _huge_ benefit for some operations.
Having otherwise was becoming VERY tiresome, and was a perenial source
of bugs tripping up novice and experts of the codebase alike.
Due to the risks associated with modifying the structure being
iterated over, this patch makes the relevant *_LOOP macros iterate over
a shallow copy of the underlying GList. This is slight overkill for
many cases, but until we have identified which do not modify the
data-structures it is wise to keep as we are.
------------------------------------------------------------
Thanks to pcb's action scripting it was easy to do an automated test
for my bisection script with
src/pcb --action-string "LoadFrom(ElementToBuffer,/tmp/RES400.fp) PasteBuffer(Restore) Quit()"
Regards,
Colin
_______________________________________________
geda-user mailing list
geda-user@xxxxxxxxxxxxxx
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user