aboutsummaryrefslogtreecommitdiff
path: root/src/zencore/include
diff options
context:
space:
mode:
Diffstat (limited to 'src/zencore/include')
-rw-r--r--src/zencore/include/zencore/logging.h1
-rw-r--r--src/zencore/include/zencore/zencore.h35
2 files changed, 11 insertions, 25 deletions
diff --git a/src/zencore/include/zencore/logging.h b/src/zencore/include/zencore/logging.h
index 6d44e31df..bffbe84b4 100644
--- a/src/zencore/include/zencore/logging.h
+++ b/src/zencore/include/zencore/logging.h
@@ -26,6 +26,7 @@ namespace zen::logging {
void InitializeLogging();
void ShutdownLogging();
bool EnableVTMode();
+void FlushLogging();
LoggerRef Default();
void SetDefault(std::string_view NewDefaultLoggerId);
diff --git a/src/zencore/include/zencore/zencore.h b/src/zencore/include/zencore/zencore.h
index cd1a34c7b..d21c0e7e2 100644
--- a/src/zencore/include/zencore/zencore.h
+++ b/src/zencore/include/zencore/zencore.h
@@ -47,40 +47,25 @@ public:
struct CallstackFrames* _Callstack = nullptr;
};
+struct CallstackFrames;
+
struct AssertImpl
{
- ZEN_FORCENOINLINE ZEN_DEBUG_SECTION AssertImpl() : PrevAssertImpl(CurrentAssertImpl) { CurrentAssertImpl = this; }
- virtual ZEN_FORCENOINLINE ZEN_DEBUG_SECTION ~AssertImpl() { CurrentAssertImpl = PrevAssertImpl; }
+ ZEN_FORCENOINLINE ZEN_DEBUG_SECTION AssertImpl();
+ virtual ZEN_FORCENOINLINE ZEN_DEBUG_SECTION ~AssertImpl();
static void ZEN_FORCENOINLINE ZEN_DEBUG_SECTION ExecAssert
- [[noreturn]] (const char* Filename, int LineNumber, const char* FunctionName, const char* Msg)
- {
- AssertImpl* AssertImpl = CurrentAssertImpl;
- while (AssertImpl)
- {
- AssertImpl->OnAssert(Filename, LineNumber, FunctionName, Msg);
- AssertImpl = AssertImpl->PrevAssertImpl;
- }
- ThrowAssertException(Filename, LineNumber, FunctionName, Msg);
- }
-
- virtual void ZEN_FORCENOINLINE ZEN_DEBUG_SECTION OnAssert(const char* Filename,
- int LineNumber,
- const char* FunctionName,
- const char* Msg)
- {
- ZEN_UNUSED(Filename);
- ZEN_UNUSED(LineNumber);
- ZEN_UNUSED(FunctionName);
- ZEN_UNUSED(Msg);
- }
+ [[noreturn]] (const char* Filename, int LineNumber, const char* FunctionName, const char* Msg);
+
+ virtual void ZEN_FORCENOINLINE ZEN_DEBUG_SECTION
+ OnAssert(const char* Filename, int LineNumber, const char* FunctionName, const char* Msg, CallstackFrames* Callstack);
protected:
static void ZEN_FORCENOINLINE ZEN_DEBUG_SECTION ThrowAssertException
- [[noreturn]] (const char* Filename, int LineNumber, const char* FunctionName, const char* Msg);
+ [[noreturn]] (const char* Filename, int LineNumber, const char* FunctionName, const char* Msg, CallstackFrames* Callstack);
static AssertImpl* CurrentAssertImpl;
static AssertImpl DefaultAssertImpl;
- AssertImpl* PrevAssertImpl = nullptr;
+ AssertImpl* NextAssertImpl = nullptr;
};
} // namespace zen