summaryrefslogtreecommitdiff
path: root/asl/base/assert.cpp
diff options
context:
space:
mode:
authorSteven Le Rouzic <steven.lerouzic@gmail.com>2025-02-20 23:13:37 +0100
committerSteven Le Rouzic <steven.lerouzic@gmail.com>2025-02-20 23:13:37 +0100
commit409ef997e2ff99b2bbea89ea61d10fc8e26dac96 (patch)
tree103225ce6af074120731ce9bb3c16a3778687d6c /asl/base/assert.cpp
parent6fd19d6dfe2c9780ce268de4205300ede4a16b89 (diff)
Add customizable assert failure handler
Diffstat (limited to 'asl/base/assert.cpp')
-rw-r--r--asl/base/assert.cpp18
1 files changed, 12 insertions, 6 deletions
diff --git a/asl/base/assert.cpp b/asl/base/assert.cpp
index 2383e9e..c3e0c69 100644
--- a/asl/base/assert.cpp
+++ b/asl/base/assert.cpp
@@ -1,12 +1,18 @@
#include "asl/base/assert.hpp"
-// #include "asl/io/print.hpp"
+static asl::AssertFailureHandler* s_handler = nullptr;
+static void* s_user = nullptr;
+
+void asl::set_assert_failure_handler(AssertFailureHandler handler, void* user)
+{
+ s_handler = handler;
+ s_user = user;
+}
void asl::report_assert_failure(const char* msg, const source_location& sl)
{
- // @Todo(org)
- // eprint("------------------------------------------------------------\n");
- // eprint("Assertion failure at {}, line {}:\n", sl.file, sl.line);
- // eprint("{}\n", msg);
- // eprint("------------------------------------------------------------\n");
+ if (s_handler != nullptr)
+ {
+ s_handler(msg, sl, s_user);
+ }
}