summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorPaul Sokolovsky <pfalcon@users.sourceforge.net>2014-05-10 21:05:45 +0300
committerPaul Sokolovsky <pfalcon@users.sourceforge.net>2014-05-10 21:26:07 +0300
commit0bc15941c2d9f9b0e05fdf0e96f1a7b843912be6 (patch)
treea214c1ff4a4b6b8fe48d3e11ff5ce38c5a6d92d2
parent7067d69bccba41e2bf6c0ddad80cee603a81352a (diff)
downloadmicropython-0bc15941c2d9f9b0e05fdf0e96f1a7b843912be6.tar.gz
micropython-0bc15941c2d9f9b0e05fdf0e96f1a7b843912be6.zip
py: Make mp_obj_print() handle null object w/o segfault if debug build.
Happens regularly when used for debugging.
-rw-r--r--py/obj.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/py/obj.c b/py/obj.c
index 8c6c3e7349..6494a847a5 100644
--- a/py/obj.c
+++ b/py/obj.c
@@ -59,6 +59,12 @@ void printf_wrapper(void *env, const char *fmt, ...) {
}
void mp_obj_print_helper(void (*print)(void *env, const char *fmt, ...), void *env, mp_obj_t o_in, mp_print_kind_t kind) {
+#if !NDEBUG
+ if (o_in == NULL) {
+ print(env, "(nil)");
+ return;
+ }
+#endif
mp_obj_type_t *type = mp_obj_get_type(o_in);
if (type->print != NULL) {
type->print(print, env, o_in, kind);