From 9dd4cef81416711ad05d3ee874f2813b42926541 Mon Sep 17 00:00:00 2001 From: Damien George Date: Fri, 3 Jan 2025 11:53:00 +1100 Subject: [PATCH] py/objarray: Add MP_DEFINE_MEMORYVIEW_OBJ convenience macro. This allows defining a `memoryview` instance, either statically or on the C stack. Signed-off-by: Damien George --- py/objarray.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/py/objarray.h b/py/objarray.h index 4a0e8a983f..bb7a514b97 100644 --- a/py/objarray.h +++ b/py/objarray.h @@ -53,6 +53,10 @@ typedef struct _mp_obj_array_t { } mp_obj_array_t; #if MICROPY_PY_BUILTINS_MEMORYVIEW + +#define MP_DEFINE_MEMORYVIEW_OBJ(obj_name, typecode, offset, len, ptr) \ + mp_obj_array_t obj_name = {{&mp_type_memoryview}, (typecode), (offset), (len), (ptr)} + static inline void mp_obj_memoryview_init(mp_obj_array_t *self, size_t typecode, size_t offset, size_t len, void *items) { self->base.type = &mp_type_memoryview; self->typecode = typecode; @@ -60,6 +64,7 @@ static inline void mp_obj_memoryview_init(mp_obj_array_t *self, size_t typecode, self->len = len; self->items = items; } + #endif #if MICROPY_PY_ARRAY || MICROPY_PY_BUILTINS_BYTEARRAY