summaryrefslogtreecommitdiff
path: root/src/common/nullpo.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/common/nullpo.hpp')
-rw-r--r--src/common/nullpo.hpp57
1 files changed, 13 insertions, 44 deletions
diff --git a/src/common/nullpo.hpp b/src/common/nullpo.hpp
index 7aff691..305448f 100644
--- a/src/common/nullpo.hpp
+++ b/src/common/nullpo.hpp
@@ -1,61 +1,30 @@
/// return wrappers for unexpected NULL pointers
#ifndef NULLPO_HPP
#define NULLPO_HPP
-/// Comment this out to live dangerously
-# define NULLPO_CHECK
+/// Uncomment this to live dangerously
+/// (really exist to detect mostly-unused variables)
+//# define BUG_FREE
/// 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;
+# ifndef BUG_FREE
# define nullpo_retr(ret, t) \
- if (nullpo_chk(NLP_MARK, t)) \
+ if (nullpo_chk(__FILE__, __LINE__, __PRETTY_FUNCTION__, 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
+# else // BUG_FREE
+# define nullpo_retr(ret, t) /*t*/
+# endif // BUG_FREE
-# include "sanity.hpp"
+# define nullpo_ret(t) nullpo_retr(0, t)
+# define nullpo_retv(t) nullpo_retr(, t)
-/// Used by macros in this header
-bool nullpo_chk (const char *file, int line, const char *func,
- const void *target);
+# include "sanity.hpp"
/// 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)));
+bool nullpo_chk(const char *file, int line, const char *func,
+ const void *target);
#endif // NULLPO_HPP