diff options
author | Ben Longbons <b.r.longbons@gmail.com> | 2012-08-30 16:16:25 -0700 |
---|---|---|
committer | Ben Longbons <b.r.longbons@gmail.com> | 2012-08-30 17:03:31 -0700 |
commit | 41974ae5265fbc23a06f276f9e008d5dad020e0b (patch) | |
tree | 9d595215172e87e2d83b74f7bf3430b3040e780e /src/common/nullpo.hpp | |
parent | 21742909143df9159b2401c3e2a39cc0b2bad620 (diff) | |
download | tmwa-41974ae5265fbc23a06f276f9e008d5dad020e0b.tar.gz tmwa-41974ae5265fbc23a06f276f9e008d5dad020e0b.tar.bz2 tmwa-41974ae5265fbc23a06f276f9e008d5dad020e0b.tar.xz tmwa-41974ae5265fbc23a06f276f9e008d5dad020e0b.zip |
Rename files for C++ conversion. Does not compile.
After updating, you can remove these files, as shown in 'git status':
Untracked files:
(use "git add <file>..." to include in what will be committed)
src/map/magic-interpreter-lexer.c
src/map/magic-interpreter-parser.c
src/map/magic-interpreter-parser.h
Diffstat (limited to 'src/common/nullpo.hpp')
-rw-r--r-- | src/common/nullpo.hpp | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/src/common/nullpo.hpp b/src/common/nullpo.hpp new file mode 100644 index 0000000..7aff691 --- /dev/null +++ b/src/common/nullpo.hpp @@ -0,0 +1,61 @@ +/// return wrappers for unexpected NULL pointers +#ifndef NULLPO_HPP +#define NULLPO_HPP +/// Comment this out to live dangerously +# define NULLPO_CHECK + +/// All functions print to standard error (was: standard output) +/// nullpo_ret(cond) - return 0 if given pointer is NULL +/// nullpo_retv(cond) - just return (function returns void) +/// nullpo_retr(rv, cond) - return given value instead +/// the _f variants take a printf-format string and arguments + +# ifdef NULLPO_CHECK +# define NLP_MARK __FILE__, __LINE__, __func__ +# define nullpo_ret(t) \ + if (nullpo_chk(NLP_MARK, t)) \ + return 0; +# define nullpo_retv(t) \ + if (nullpo_chk(NLP_MARK, t)) \ + return; +# define nullpo_retr(ret, t) \ + if (nullpo_chk(NLP_MARK, t)) \ + return ret; +# define nullpo_ret_f(t, fmt, ...) \ + if (nullpo_chk_f(NLP_MARK, t, fmt, ##__VA_ARGS__)) \ + return 0; +# define nullpo_retv_f(t, fmt, ...) \ + if (nullpo_chk_f(NLP_MARK, t, fmt, ##__VA_ARGS__)) \ + return; +# define nullpo_retr_f(ret, t, fmt, ...) \ + if (nullpo_chk_f(NLP_MARK, t, fmt, ##__VA_ARGS__)) \ + return ret; +# else // NULLPO_CHECK +# define nullpo_ret(t) t; +# define nullpo_retv(t) t; +# define nullpo_retr(ret, t) t; +# define nullpo_ret_f(t, fmt, ...) t; +# define nullpo_retv_f(t, fmt, ...) t; +# define nullpo_retr_f(ret, t, fmt, ...) t; +# endif // NULLPO_CHECK + +# include "sanity.hpp" + +/// Used by macros in this header +bool nullpo_chk (const char *file, int line, const char *func, + const void *target); + +/// Used by macros in this header +bool nullpo_chk_f (const char *file, int line, const char *func, + const void *target, const char *fmt, ...) + __attribute__ ((format (printf, 5, 6))); + +/// Used only by map/battle.c +void nullpo_info (const char *file, int line, const char *func); + +/// Not used +void nullpo_info_f (const char *file, int line, const char *func, + const char *fmt, ...) + __attribute__ ((format (printf, 4, 5))); + +#endif // NULLPO_HPP |