Skip to content
Snippets Groups Projects
Commit 23faf88c authored by Damien George's avatar Damien George
Browse files

py/mpprint: Only check for null string printing when NDEBUG not defined.

Printing "(null)" when a NULL string pointer is passed to %s is a debugging
feature and not a feature that's relied upon by the code.  So it only needs
to be compiled in when debugging (such as assert) is enabled, and saves
roughy 30 bytes of code when disabled.

This patch also fixes this NULL check to not do the check if the precision
is specified as zero.
parent dfa563c7
No related branches found
No related tags found
No related merge requests found
...@@ -485,14 +485,17 @@ int mp_vprintf(const mp_print_t *print, const char *fmt, va_list args) { ...@@ -485,14 +485,17 @@ int mp_vprintf(const mp_print_t *print, const char *fmt, va_list args) {
case 's': case 's':
{ {
const char *str = va_arg(args, const char*); const char *str = va_arg(args, const char*);
if (str) { #ifndef NDEBUG
// With debugging enabled, catch printing of null string pointers
if (prec != 0 && str == NULL) {
chrs += mp_print_strn(print, "(null)", 6, flags, fill, width);
break;
}
#endif
if (prec < 0) { if (prec < 0) {
prec = strlen(str); prec = strlen(str);
} }
chrs += mp_print_strn(print, str, prec, flags, fill, width); chrs += mp_print_strn(print, str, prec, flags, fill, width);
} else {
chrs += mp_print_strn(print, "(null)", 6, flags, fill, width);
}
break; break;
} }
case 'u': case 'u':
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment