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>
This commit is contained in:
@@ -53,6 +53,10 @@ typedef struct _mp_obj_array_t {
|
|||||||
} mp_obj_array_t;
|
} mp_obj_array_t;
|
||||||
|
|
||||||
#if MICROPY_PY_BUILTINS_MEMORYVIEW
|
#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) {
|
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->base.type = &mp_type_memoryview;
|
||||||
self->typecode = typecode;
|
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->len = len;
|
||||||
self->items = items;
|
self->items = items;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if MICROPY_PY_ARRAY || MICROPY_PY_BUILTINS_BYTEARRAY
|
#if MICROPY_PY_ARRAY || MICROPY_PY_BUILTINS_BYTEARRAY
|
||||||
|
|||||||
Reference in New Issue
Block a user