X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fsupport%2FLAssert.h;h=6a937266024f62faa7a5fa1e7b9fa94b6b73e94c;hb=5296e9e9952cf6e2f306077c62a1caeaf8479eed;hp=071f50919d85234c9d465f88a3b74de6e4fc0b75;hpb=db54977b71c7e052b53dc97b5f539aaa86e24342;p=lyx.git diff --git a/src/support/LAssert.h b/src/support/LAssert.h index 071f50919d..6a93726602 100644 --- a/src/support/LAssert.h +++ b/src/support/LAssert.h @@ -4,23 +4,38 @@ #include "support/lyxlib.h" -//namespace LyX { +extern void emergencyCleanup(); + +namespace lyx { #ifdef ENABLE_ASSERTIONS -template inline void Assert(A assertion) +/** Live assertion. + This is a debug tool to ensure that the assertion holds. If it don't hole + we run #emergencyCleanup()# and then #lyx::abort". + @param assertion this should evaluate to true unless you want an abort. +*/ +template +inline +void Assert(A assertion) { if (!assertion) { + ::emergencyCleanup(); lyx::abort(); } } #else -template inline void Assert(A /*assertion*/) {} +/** Dummy assertion. + When compiling without assertions we use this no-op function. +*/ +template +inline +void Assert(A /*assertion*/) {} #endif /* ENABLE_ASSERTIONS */ -//} // end of namespace LyX -#endif /* LASSERT_H */ +} // end of namespace LyX +#endif /* LASSERT_H */