mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2025-02-24 20:51:35 +00:00
Host_Error and Host_EndGame use setjmp/longjmp to implement an exception of sorts, but this messes with tracy's state even with cleanup attributes. However, it turns out that those cleanup attributes are exactly how gcc implements C++ destructors, and so the standard Unwind api (part of libgcc) respects them (so long as -fexceptions is enabled for C). Thus... replace longjmp with an implementation that uses Unwind to unwind the stack and call the cleanup functions as needed. This is actually important for more than just tracy as the cleanup attributed vars can be thread locks. |
||
---|---|---|
.. | ||
include | ||
source | ||
Makemodule.am |