Skip to content

Prevent crash if DFHack GUI window is open when exiting fort #4183

@myk002

Description

@myk002

to reproduce:

  1. open gui/reveal when a fort is loaded (any GUI script would probably do as well)
  2. click on the map to defocus the window
  3. go to settings, quit without saving

example backtrace:

#0  0x0000000001033222 in ?? ()
#1  0x0000000001384f7d in ?? ()
#2  0x00000000010db714 in ?? ()
#3  0x00007fffedae3bcc in viewscreen_overlay<df::viewscreen_dwarfmodest>::interpose_fn_render (this=0x7fff4f7e0580)
    at /home/myk/src/dfhack/plugins/overlay.cpp:92
#4  0x00007ffff77b80d4 in df::function_identity<void (df::abstract_interfacest::*)()>::invoke(lua_State*, int) ()
   from ./hack/libdfhack.so
#5  0x00007ffff76c414d in DFHack::LuaWrapper::method_wrapper_core (state=0x7fffe8034ce8, id=0x2a37860)
    at /home/myk/src/dfhack/library/LuaTypes.cpp:1225
#6  0x00007ffff67c9200 in luaD_precall (L=L@entry=0x7fffe8034ce8, func=func@entry=0x7fffe8788370, 
    nresults=nresults@entry=0) at /home/myk/src/dfhack/depends/lua/src/ldo.c:434
#7  0x00007ffff67e0514 in luaV_execute (L=L@entry=0x7fffe8034ce8)
    at /home/myk/src/dfhack/depends/lua/src/lvm.c:1134
#8  0x00007ffff67c9528 in luaD_call (nResults=0, func=<optimized out>, L=0x7fffe8034ce8)
    at /home/myk/src/dfhack/depends/lua/src/ldo.c:499
#9  luaD_callnoyield (L=L@entry=0x7fffe8034ce8, func=<optimized out>, nResults=nResults@entry=0)
    at /home/myk/src/dfhack/depends/lua/src/ldo.c:509
#10 0x00007ffff67bf7a4 in lua_callk (L=0x7fffe8034ce8, nargs=<optimized out>, nresults=0, ctx=0, k=0x0)
    at /home/myk/src/dfhack/depends/lua/src/lapi.c:925
#11 0x00007ffff79a7124 in DFHack::dfhack_lua_viewscreen::do_render (L=0x7fffe8034ce8)
    at /home/myk/src/dfhack/library/modules/Screen.cpp:934

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions