summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Epler <jepler@gmail.com>2025-08-15 08:01:12 -0500
committerDamien George <damien@micropython.org>2025-10-03 00:45:40 +1000
commitc91e091ad72e3e15ca8981bd953f64714a5afb3e (patch)
tree376d44e41f33a57b7dae0b007286a1c1619f73ab
parentab0080602578ce789d784aaaf50511313db70bc7 (diff)
py/runtime: Fix printing of failed allocation amounts.
On LP64 and LLP64 systems, size_t is bigger than unsigned. Printing the failed allocation using the new SIZE_FMT macro allows the correct failed allocation size to be shown. Example where this affects the failed allocation message (on x86_64 coverage build): >>> "a" * (1 << 54) Before, this would print the size as 1. Now it prints it as 18014398509481985 (2**54 + 1). Signed-off-by: Jeff Epler <jepler@gmail.com>
-rw-r--r--py/runtime.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/py/runtime.c b/py/runtime.c
index 58d5732be..a84e22760 100644
--- a/py/runtime.c
+++ b/py/runtime.c
@@ -1669,14 +1669,14 @@ mp_obj_t mp_parse_compile_execute(mp_lexer_t *lex, mp_parse_input_kind_t parse_i
#endif // MICROPY_ENABLE_COMPILER
MP_NORETURN void m_malloc_fail(size_t num_bytes) {
- DEBUG_printf("memory allocation failed, allocating %u bytes\n", (uint)num_bytes);
+ DEBUG_printf("memory allocation failed, allocating " SIZE_FMT " bytes\n", num_bytes);
#if MICROPY_ENABLE_GC
if (gc_is_locked()) {
mp_raise_msg(&mp_type_MemoryError, MP_ERROR_TEXT("memory allocation failed, heap is locked"));
}
#endif
mp_raise_msg_varg(&mp_type_MemoryError,
- MP_ERROR_TEXT("memory allocation failed, allocating %u bytes"), (uint)num_bytes);
+ MP_ERROR_TEXT("memory allocation failed, allocating " SIZE_FMT " bytes"), num_bytes);
}
#if MICROPY_ERROR_REPORTING == MICROPY_ERROR_REPORTING_NONE