summaryrefslogtreecommitdiff
path: root/py
diff options
context:
space:
mode:
authorDamien George <damien@micropython.org>2025-01-03 11:53:00 +1100
committerDamien George <damien@micropython.org>2025-03-06 12:52:35 +1100
commit9dd4cef81416711ad05d3ee874f2813b42926541 (patch)
treeb4d194fa86685c1c19503d61e0d7e1d0949f3172 /py
parent6be7570219c05f5dd4a5e0bc10be3cff851da8c8 (diff)
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 <damien@micropython.org>
Diffstat (limited to 'py')
-rw-r--r--py/objarray.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/py/objarray.h b/py/objarray.h
index 4a0e8a983..bb7a514b9 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