DUK_INTERNAL void duk_err_handle_error(const char *filename, duk_int_t line, duk_hthread *thr, duk_errcode_t code, const char *fmt, ...) { va_list ap; char msg[DUK__ERRFMT_BUFSIZE]; va_start(ap, fmt); (void) DUK_VSNPRINTF(msg, sizeof(msg), fmt, ap); msg[sizeof(msg) - 1] = (char) 0; duk_err_create_and_throw(thr, code, msg, filename, line); va_end(ap); /* dead code, but ensures portability (see Linux man page notes) */ }
DUK_INTERNAL void duk_err_handle_error_nonverbose2(const char *filename, duk_int_t line, duk_hthread *thr, duk_errcode_t code, const char *fmt, ...) { duk_err_create_and_throw(thr, code); }
/* * Error, fatal, and panic handling. */ #include "duk_internal.h" #define DUK__ERRFMT_BUFSIZE 256 /* size for formatting buffers */ #ifdef DUK_USE_VERBOSE_ERRORS #ifdef DUK_USE_VARIADIC_MACROS DUK_INTERNAL void duk_err_handle_error(const char *filename, duk_int_t line, duk_hthread *thr, duk_errcode_t code, const char *fmt, ...) { va_list ap; char msg[DUK__ERRFMT_BUFSIZE]; va_start(ap, fmt); (void) DUK_VSNPRINTF(msg, sizeof(msg), fmt, ap); msg[sizeof(msg) - 1] = (char) 0; duk_err_create_and_throw(thr, code, msg, filename, line); va_end(ap); /* dead code, but ensures portability (see Linux man page notes) */ } #else /* DUK_USE_VARIADIC_MACROS */ DUK_INTERNAL const char *duk_err_file_stash = NULL; DUK_INTERNAL duk_int_t duk_err_line_stash = 0; DUK_NORETURN(DUK_LOCAL_DECL void duk__handle_error(const char *filename, duk_int_t line, duk_hthread *thr, duk_errcode_t code, const char *fmt, va_list ap)); DUK_LOCAL void duk__handle_error(const char *filename, duk_int_t line, duk_hthread *thr, duk_errcode_t code, const char *fmt, va_list ap) { char msg[DUK__ERRFMT_BUFSIZE]; (void) DUK_VSNPRINTF(msg, sizeof(msg), fmt, ap); msg[sizeof(msg) - 1] = (char) 0; duk_err_create_and_throw(thr, code, msg, filename, line); } DUK_INTERNAL void duk_err_handle_error(const char *filename, duk_int_t line, duk_hthread *thr, duk_errcode_t code, const char *fmt, ...) { va_list ap; va_start(ap, fmt); duk__handle_error(filename, line, thr, code, fmt, ap); va_end(ap); /* dead code */ } DUK_INTERNAL void duk_err_handle_error_stash(duk_hthread *thr, duk_errcode_t code, const char *fmt, ...) { va_list ap; va_start(ap, fmt); duk__handle_error(duk_err_file_stash, duk_err_line_stash, thr, code, fmt, ap); va_end(ap); /* dead code */ } #endif /* DUK_USE_VARIADIC_MACROS */ #else /* DUK_USE_VERBOSE_ERRORS */ #ifdef DUK_USE_VARIADIC_MACROS DUK_INTERNAL void duk_err_handle_error(duk_hthread *thr, duk_errcode_t code) { duk_err_create_and_throw(thr, code); } #else /* DUK_USE_VARIADIC_MACROS */ DUK_INTERNAL void duk_err_handle_error_nonverbose1(duk_hthread *thr, duk_errcode_t code, const char *fmt, ...) { duk_err_create_and_throw(thr, code); }
DUK_INTERNAL void duk_err_handle_error(duk_hthread *thr, duk_errcode_t code) { duk_err_create_and_throw(thr, code); }
DUK_LOCAL void duk__handle_error(const char *filename, duk_int_t line, duk_hthread *thr, duk_errcode_t code, const char *fmt, va_list ap) { char msg[DUK__ERRFMT_BUFSIZE]; (void) DUK_VSNPRINTF(msg, sizeof(msg), fmt, ap); msg[sizeof(msg) - 1] = (char) 0; duk_err_create_and_throw(thr, code, msg, filename, line); }
void duk_err_handle_error_nonverbose2(const char *filename, int line, duk_hthread *thr, int code, const char *fmt, ...) { duk_err_create_and_throw(thr, code); }
/* * Error, fatal, and panic handling. */ #include "duk_internal.h" #define DUK__ERRFMT_BUFSIZE 256 /* size for formatting buffers */ #ifdef DUK_USE_VERBOSE_ERRORS #ifdef DUK_USE_VARIADIC_MACROS void duk_err_handle_error(const char *filename, int line, duk_hthread *thr, int code, const char *fmt, ...) { va_list ap; char msg[DUK__ERRFMT_BUFSIZE]; va_start(ap, fmt); (void) DUK_VSNPRINTF(msg, sizeof(msg), fmt, ap); msg[sizeof(msg) - 1] = (char) 0; duk_err_create_and_throw(thr, code, msg, filename, line); va_end(ap); /* dead code, but ensures portability (see Linux man page notes) */ } #else /* DUK_USE_VARIADIC_MACROS */ const char *duk_err_file_stash = NULL; int duk_err_line_stash = 0; DUK_NORETURN(static void duk__handle_error(const char *filename, int line, duk_hthread *thr, int code, const char *fmt, va_list ap)); static void duk__handle_error(const char *filename, int line, duk_hthread *thr, int code, const char *fmt, va_list ap) { char msg[DUK__ERRFMT_BUFSIZE]; (void) DUK_VSNPRINTF(msg, sizeof(msg), fmt, ap); msg[sizeof(msg) - 1] = (char) 0; duk_err_create_and_throw(thr, code, msg, filename, line); } void duk_err_handle_error(const char *filename, int line, duk_hthread *thr, int code, const char *fmt, ...) { va_list ap; va_start(ap, fmt); duk__handle_error(filename, line, thr, code, fmt, ap); va_end(ap); /* dead code */ } void duk_err_handle_error_stash(duk_hthread *thr, int code, const char *fmt, ...) { va_list ap; va_start(ap, fmt); duk__handle_error(duk_err_file_stash, duk_err_line_stash, thr, code, fmt, ap); va_end(ap); /* dead code */ } #endif /* DUK_USE_VARIADIC_MACROS */ #else /* DUK_USE_VERBOSE_ERRORS */ #ifdef DUK_USE_VARIADIC_MACROS void duk_err_handle_error(duk_hthread *thr, int code) { duk_err_create_and_throw(thr, code); } #else /* DUK_USE_VARIADIC_MACROS */ void duk_err_handle_error_nonverbose1(duk_hthread *thr, int code, const char *fmt, ...) { duk_err_create_and_throw(thr, code); }
void duk_err_handle_error(duk_hthread *thr, int code) { duk_err_create_and_throw(thr, code); }