diff options
author | Paul Sokolovsky <pfalcon@users.sourceforge.net> | 2016-08-12 21:58:56 +0300 |
---|---|---|
committer | Paul Sokolovsky <pfalcon@users.sourceforge.net> | 2016-08-12 21:58:56 +0300 |
commit | 8c50f93a4177b56ec1aa36563c93c04b19f89a9f (patch) | |
tree | c44bbed6775307335cc593d00aba83cc751d40eb | |
parent | 9e1b61dedd82dffccbe4f20996eadaf79726d427 (diff) | |
download | micropython-8c50f93a4177b56ec1aa36563c93c04b19f89a9f.tar.gz micropython-8c50f93a4177b56ec1aa36563c93c04b19f89a9f.zip |
py/runtime.h: Define mp_check_self(pred) helper macro.
Indended to replace raw asserts in bunch of files. Expands to empty
if MICROPY_BUILTIN_METHOD_CHECK_SELF_ARG is defined, otehrwise by
default still to assert, though a particular port may define it to
something else.
-rw-r--r-- | py/runtime.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/py/runtime.h b/py/runtime.h index df5e45b2d3..f81a6263d0 100644 --- a/py/runtime.h +++ b/py/runtime.h @@ -141,6 +141,16 @@ NORETURN void mp_raise_TypeError(const char *msg); NORETURN void mp_not_implemented(const char *msg); NORETURN void mp_exc_recursion_depth(void); +#if MICROPY_BUILTIN_METHOD_CHECK_SELF_ARG +#undef mp_check_self +#define mp_check_self(pred) +#else +// A port may define to raise TypeError for example +#ifndef mp_check_self +#define mp_check_self(pred) assert(pred) +#endif +#endif + // helper functions for native/viper code mp_uint_t mp_convert_obj_to_native(mp_obj_t obj, mp_uint_t type); mp_obj_t mp_convert_native_to_obj(mp_uint_t val, mp_uint_t type); |