mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-26 17:40:27 +00:00
Move assertion failures out-of-line to reduce binary bloat.
This commit is contained in:
parent
7fe4063323
commit
8b4b684d6d
Notes:
sideshowbarker
2024-07-19 18:33:56 +09:00
Author: https://github.com/awesomekling Commit: https://github.com/SerenityOS/serenity/commit/8b4b684d6da
2 changed files with 10 additions and 1 deletions
|
@ -447,3 +447,10 @@ void handleIRQ()
|
|||
s_irqHandler[irq]->handleIRQ();
|
||||
PIC::eoi(irq);
|
||||
}
|
||||
|
||||
void __assertion_failed(const char* msg, const char* file, unsigned line, const char* func)
|
||||
{
|
||||
asm volatile("cli");
|
||||
kprintf("ASSERTION FAILED: %s\n%s:%u in %s\n", msg, file, line, func);
|
||||
asm volatile("hlt");
|
||||
}
|
||||
|
|
|
@ -3,8 +3,10 @@
|
|||
#include "kprintf.h"
|
||||
#include "i386.h"
|
||||
|
||||
void __assertion_failed(const char* msg, const char* file, unsigned line, const char* func) NORETURN;
|
||||
|
||||
#define ASSERT(expr) (static_cast<bool>(expr) ? (void)0 : __assertion_failed(#expr, __FILE__, __LINE__, __PRETTY_FUNCTION__))
|
||||
#define CRASH() do { asm volatile("ud2"); } while(0)
|
||||
#define ASSERT(x) do { if (!(x)) { asm volatile("cli"); kprintf("ASSERTION FAILED: " #x "\n%s:%u in %s\n", __FILE__, __LINE__, __PRETTY_FUNCTION__); CRASH(); } } while(0)
|
||||
#define RELEASE_ASSERT(x) do { if (!(x)) CRASH(); } while(0)
|
||||
#define ASSERT_NOT_REACHED() ASSERT(false)
|
||||
#define ASSERT_INTERRUPTS_DISABLED() ASSERT(!(cpuFlags() & 0x200))
|
||||
|
|
Loading…
Reference in a new issue