lovr/src/core/util.c

31 lines
704 B
C
Raw Normal View History

2016-07-07 07:04:24 +00:00
#include "util.h"
2018-10-29 19:01:20 +00:00
#include "platform.h"
2016-07-07 07:04:24 +00:00
#include <stdlib.h>
2019-05-20 21:31:46 +00:00
LOVR_THREAD_LOCAL lovrErrorHandler lovrErrorCallback = NULL;
LOVR_THREAD_LOCAL void* lovrErrorUserdata = NULL;
2018-09-26 17:39:17 +00:00
void lovrSetErrorCallback(lovrErrorHandler callback, void* userdata) {
lovrErrorCallback = callback;
lovrErrorUserdata = userdata;
}
void lovrThrow(const char* format, ...) {
2018-09-26 17:39:17 +00:00
if (lovrErrorCallback) {
va_list args;
va_start(args, format);
lovrErrorCallback(lovrErrorUserdata, format, args);
va_end(args);
exit(EXIT_FAILURE);
2018-09-26 17:39:17 +00:00
} else {
va_list args;
va_start(args, format);
2018-10-29 19:01:20 +00:00
lovrWarn("Error: ");
lovrWarnv(format, args);
lovrWarn("\n");
2018-09-26 17:39:17 +00:00
va_end(args);
exit(EXIT_FAILURE);
}
}