py/mpprint: Make "%p" format work properly on 64-bit systems.

Before, the output was truncated to 32 bits.
This commit is contained in:
Paul Sokolovsky 2017-12-07 09:04:54 +02:00
parent ada1dc1c03
commit 5f8ad284f8

View File

@ -512,7 +512,8 @@ int mp_vprintf(const mp_print_t *print, const char *fmt, va_list args) {
break;
case 'p':
case 'P': // don't bother to handle upcase for 'P'
chrs += mp_print_int(print, va_arg(args, unsigned int), 0, 16, 'a', flags, fill, width);
// Use unsigned long int to work on both ILP32 and LP64 systems
chrs += mp_print_int(print, va_arg(args, unsigned long int), 0, 16, 'a', flags, fill, width);
break;
#if MICROPY_PY_BUILTINS_FLOAT
case 'e':