py: Make struct-initializing macros compatible with C++.

This requires explicitly naming and initializing all members so add that
where needed and possible.  For MP_DEFINE_NLR_JUMP_CALLBACK_FUNCTION_1
this would require initializing the .callback member, but that's a bit
of a waste since the macro is always followed by a call to
nlr_push_jump_callback() to initialize exactly that member, so rewrite
the macro without initializers.

Signed-off-by: stijn <stijn@ignitron.net>
This commit is contained in:
stijn
2025-04-22 14:53:07 +02:00
parent 076e07197e
commit 02eea0da24
3 changed files with 13 additions and 13 deletions

View File

@@ -50,7 +50,7 @@ extern const mp_obj_type_t mp_type_attrtuple;
#define MP_DEFINE_ATTRTUPLE(tuple_obj_name, fields, nitems, ...) \
const mp_rom_obj_tuple_t tuple_obj_name = { \
.base = {&mp_type_attrtuple}, \
.base = {.type = &mp_type_attrtuple}, \
.len = nitems, \
.items = { __VA_ARGS__, MP_ROM_PTR((void *)fields) } \
}