Binding parser, TestFunctions

This commit is contained in:
Krzosa Karol
2025-12-15 23:29:18 +01:00
parent 4e5a0f6a9b
commit 5e7acd4a20
11 changed files with 452 additions and 124 deletions

View File

@@ -37,8 +37,6 @@ For(arr.reverse_iter()) {
#define ForItem(it, array) for (auto &it : (array))
#define For(array) ForItem(it, array)
template <class T>
struct Slice {
T *data;

View File

@@ -21,11 +21,11 @@ API void (*Error)(const char *, ...);
struct backtrace_state *backtrace_state = NULL;
void os_core_backtrace_error_callback(void *data, const char *msg, int errnum) {
void BacktraceOnError(void *data, const char *msg, int errnum) {
Error("libbacktrace error: %s (errnum: %d)\n", msg, errnum);
}
int os_core_backtrace_print_callback(void *data, uintptr_t pc, const char *filename, int lineno, const char *function) {
int BacktraceOnPrint(void *data, uintptr_t pc, const char *filename, int lineno, const char *function) {
bool printed = false;
if (filename != NULL) {
char buffer[512];
@@ -43,16 +43,16 @@ int os_core_backtrace_print_callback(void *data, uintptr_t pc, const char *filen
return 0;
}
void os_unix_crash_handler(int signal, siginfo_t* info, void* context) {
backtrace_full(backtrace_state, 2, os_core_backtrace_print_callback, os_core_backtrace_error_callback, NULL);
void CrashHandler(int signal, siginfo_t* info, void* context) {
backtrace_full(backtrace_state, 2, BacktraceOnPrint, BacktraceOnError, NULL);
exit(1);
}
void os_unix_register_crash_handler(void) {
backtrace_state = backtrace_create_state(NULL, 1, os_core_backtrace_error_callback, NULL);
void RegisterCrashHandler(void) {
backtrace_state = backtrace_create_state(NULL, 1, BacktraceOnError, NULL);
struct sigaction sa;
sa.sa_sigaction = os_unix_crash_handler;
sa.sa_sigaction = CrashHandler;
sigemptyset(&sa.sa_mask);
sa.sa_flags = SA_RESTART | SA_SIGINFO;
@@ -65,7 +65,7 @@ void os_unix_register_crash_handler(void) {
API void InitOS(void (*error_proc)(const char *, ...)) {
Error = error_proc;
os_unix_register_crash_handler();
RegisterCrashHandler();
}
API String ReadFile(Allocator al, String path) {