← Back to team overview

kicad-developers team mailing list archive

Re: [PATCH] Eeschema automatic manage junctions

 

Hi,

just tested your patches. I think it is an improvement over the current master. But with this patch eeschema crashes on opening some (hierarchical) sheets either by double-clicking or using the navigator.

I have changed eeschema/schematic_undo_redo.cpp:182
from

if( commandToUndo->m_Status == UR_WIRE_IMAGE )

to

if( commandToUndo && commandToUndo->m_Status == UR_WIRE_IMAGE )

and now it seems to work.

 - Michael


Thread 1 "kicad" received signal SIGSEGV, Segmentation fault.
0x00007fffe6faf7e4 in SCH_EDIT_FRAME::SaveCopyInUndoList (this=0x1eca430, aItemsList=..., aTypeCommand=UR_CHANGED, aAppend=true, aTransformPoint=...)
    at /data/src/kicad-source-mirror/eeschema/schematic_undo_redo.cpp:182
182             if( commandToUndo->m_Status == UR_WIRE_IMAGE )
(gdb) bt
#0  0x00007fffe6faf7e4 in SCH_EDIT_FRAME::SaveCopyInUndoList (this=0x1eca430, aItemsList=..., aTypeCommand=UR_CHANGED, aAppend=true, aTransformPoint=...)
    at /data/src/kicad-source-mirror/eeschema/schematic_undo_redo.cpp:182
#1  0x00007fffe6d987a2 in SCH_EDIT_FRAME::SchematicCleanUp (this=0x1eca430, aAppend=true) at /data/src/kicad-source-mirror/eeschema/bus-wire-junction.cpp:536 #2  0x00007fffe6eb0c0e in SCH_EDIT_FRAME::DisplayCurrentSheet (this=0x1eca430) at /data/src/kicad-source-mirror/eeschema/hierarch.cpp:302 #3  0x00007fffe6f053fc in SCH_EDIT_FRAME::OnLeftDClick (this=0x1eca430, aDC=0x7fffffffcfe0, aPosition=...)
    at /data/src/kicad-source-mirror/eeschema/onleftclick.cpp:410
#4  0x00007fffe70c8e6f in EDA_DRAW_PANEL::OnMouseEvent (this=0x1edf140, event=...) at /data/src/kicad-source-mirror/common/draw_panel.cpp:1134 #5  0x00007ffff67d11fe in wxAppConsoleBase::CallEventHandler(wxEvtHandler*, wxEventFunctor&, wxEvent&) const ()
   from /usr/lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0
#6  0x00007ffff69576e7 in wxEvtHandler::ProcessEventIfMatchesId(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&) ()
   from /usr/lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0
#7  0x00007ffff69577db in wxEventHashTable::HandleEvent(wxEvent&, wxEvtHandler*) () from /usr/lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0 #8  0x00007ffff6957b8b in wxEvtHandler::TryHereOnly(wxEvent&) () from /usr/lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0 #9  0x00007ffff6957c13 in wxEvtHandler::ProcessEventLocally(wxEvent&) () from /usr/lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0 #10 0x00007ffff6957c75 in wxEvtHandler::ProcessEvent(wxEvent&) () from /usr/lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0 #11 0x00007ffff70ec77b in wxScrollHelperEvtHandler::ProcessEvent(wxEvent&) () from /usr/lib/x86_64-linux-gnu/libwx_gtk2u_core-3.0.so.0 #12 0x00007ffff69579e7 in wxEvtHandler::SafelyProcessEvent(wxEvent&) () from /usr/lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0 #13 0x00007ffff6e984c6 in ?? () from /usr/lib/x86_64-linux-gnu/libwx_gtk2u_core-3.0.so.0 #14 0x00007ffff4d1daec in ?? () from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0 #15 0x00007ffff46f2fa5 in g_closure_invoke () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0 #16 0x00007ffff4704fc1 in ?? () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0 #17 0x00007ffff470d7f9 in g_signal_emit_valist () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0 #18 0x00007ffff470e08f in g_signal_emit () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0 #19 0x00007ffff4e3593c in ?? () from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0 #20 0x00007ffff4d1c284 in gtk_propagate_event () from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0 #21 0x00007ffff4d1c63b in gtk_main_do_event () from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0 #22 0x00007ffff4990c8c in ?? () from /usr/lib/x86_64-linux-gnu/libgdk-x11-2.0.so.0 #23 0x00007ffff3fae197 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
---Type <return> to continue, or q <return> to quit---q
Quit
(gdb) p *commandToUndo
Cannot access memory at address 0x0



Application: kicad
Version: (2017-10-28 revision b416c3b4b)-seth, debug build
Libraries:
    wxWidgets 3.0.2
    libcurl/7.47.0 OpenSSL/1.0.2g zlib/1.2.8 libidn/1.32 librtmp/2.3
Platform: Linux 4.10.0-37-generic x86_64, 64 bit, Little endian, wxGTK
Build Info:
    wxWidgets: 3.0.2 (wchar_t,wx containers,compatible with 2.8) GTK+ 2.24
    Boost: 1.58.0
    Curl: 7.47.0
    Compiler: GCC 5.4.0 with C++ ABI 1009

Build settings:
    USE_WX_GRAPHICS_CONTEXT=OFF
    USE_WX_OVERLAY=OFF
    KICAD_SCRIPTING=ON
    KICAD_SCRIPTING_MODULES=ON
    KICAD_SCRIPTING_WXPYTHON=ON
    KICAD_SCRIPTING_ACTION_MENU=OFF
    BUILD_GITHUB_PLUGIN=ON
    KICAD_USE_OCE=ON
    KICAD_SPICE=ON



On 28.10.2017 02:09, Seth Hillbrand wrote:
Hi All-

Quick ping on this.  Master has moved on, so I've re-based the patch set to the current master, in case anyone is up for looking at it.  I also split out the largest patch into a couple of logical blocks, in hopes of making it easier to review.

Lastly, I found and fixed a corner case where removing two segments on the same junction broke the undo/redo stack.

Thanks!
Seth

On Mon, Oct 16, 2017 at 5:27 PM, Seth Hillbrand <seth.hillbrand@xxxxxxxxx <mailto:seth.hillbrand@xxxxxxxxx>> wrote:

    Attached is a proposed patchset for automatically managing
    junctions​, adding and deleting them as they are needed by the
    schematic.

    The patches touch a number of sections, so any reports of issues
    would be greatly appreciated.  Notably, this introduces an
    "append" feature to eeschema's undo save, which allows us to stack
    changes from different calls into the undo list.  This removes the
    issue where "Delete Connection" would break the undo stack.

    Schematic cleanup is moved from the SCH_SCREEN class into the
    SCH_EDIT_FRAME class to provide access to the undo stack.

    Cleanup now checks for overlapping segments as well as duplicate
    junctions and merge-able lines.

    Bugs reports addressed by this patchset:
    https://bugs.launchpad.net/kicad/+bug/1563153
    <https://bugs.launchpad.net/kicad/+bug/1563153>
    https://bugs.launchpad.net/kicad/+bug/593888
    <https://bugs.launchpad.net/kicad/+bug/593888>
    https://bugs.launchpad.net/kicad/+bug/1482111
    <https://bugs.launchpad.net/kicad/+bug/1482111>

    Any feedback would be greatly appreciated.

    -S​




_______________________________________________
Mailing list: https://launchpad.net/~kicad-developers
Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
Unsubscribe : https://launchpad.net/~kicad-developers
More help   : https://help.launchpad.net/ListHelp



Follow ups

References