diff options
Diffstat (limited to 'src/common/nullpo.cpp')
-rw-r--r-- | src/common/nullpo.cpp | 67 |
1 files changed, 8 insertions, 59 deletions
diff --git a/src/common/nullpo.cpp b/src/common/nullpo.cpp index 53ed37d..8aa2e6e 100644 --- a/src/common/nullpo.cpp +++ b/src/common/nullpo.cpp @@ -1,58 +1,10 @@ #include "nullpo.hpp" -#include <cstdarg> // exception to "no va_list" rule #include <cstdio> #include <cstring> -static -void nullpo_info_core(const char *file, int line, const char *func); -__attribute__((format(printf, 4, 0))) -static -void nullpo_info_core(const char *file, int line, const char *func, - const char *fmt, va_list ap); - -/// Null check and print format -bool nullpo_chk_f(const char *file, int line, const char *func, - const void *target, const char *fmt, ...) -{ - va_list ap; - - if (target) - return 0; - - va_start(ap, fmt); - nullpo_info_core(file, line, func, fmt, ap); - va_end(ap); - return 1; -} -bool nullpo_chk(const char *file, int line, const char *func, - const void *target) -{ - if (target) - return 0; - - nullpo_info_core(file, line, func); - return 1; -} - -/// External functions -void nullpo_info_f(const char *file, int line, const char *func, - const char *fmt, ...) -{ - va_list ap; - - va_start(ap, fmt); - nullpo_info_core(file, line, func, fmt, ap); - va_end(ap); -} -void nullpo_info(const char *file, int line, const char *func) -{ - nullpo_info_core(file, line, func); -} - /// Actual output function -static -void nullpo_info_core(const char *file, int line, const char *func) +void nullpo_info(const char *file, int line, const char *func) { if (!file) file = "??"; @@ -62,15 +14,12 @@ void nullpo_info_core(const char *file, int line, const char *func) fprintf(stderr, "%s:%d: in func `%s': NULL pointer\n", file, line, func); } -static -void nullpo_info_core(const char *file, int line, const char *func, - const char *fmt, va_list ap) +bool nullpo_chk(const char *file, int line, const char *func, + const void *target) { - nullpo_info_core(file, line, func); - if (fmt && *fmt) - { - vfprintf(stderr, fmt, ap); - if (fmt[strlen(fmt) - 1] != '\n') - fputc('\n', stderr); - } + if (target) + return 0; + + nullpo_info(file, line, func); + return 1; } |