Skip to content

Commit 53f7e2b

Browse files
committed
Use mp_instance_cast_to_native_base() throughout
1 parent 8347f2b commit 53f7e2b

File tree

1 file changed

+15
-29
lines changed

1 file changed

+15
-29
lines changed

shared-bindings/eveL/__init__.c

Lines changed: 15 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,6 @@
3131
#include "py/runtime.h"
3232
#include "py/binary.h"
3333

34-
// #if MICROPY_PY_BUILTINS_EVEL
35-
3634
//| :mod:`eveL` --- low-level BridgeTek EVE bindings
3735
//| ================================================
3836
//|
@@ -47,30 +45,28 @@
4745

4846
typedef struct _mp_obj_EVEL_t {
4947
mp_obj_base_t base;
50-
mp_obj_t writer;
5148
mp_obj_t dest[3];
52-
5349
size_t n;
5450
uint8_t buf[512];
5551
} mp_obj_EVEL_t;
5652

53+
STATIC const mp_obj_type_t EVEL_type;
54+
5755
STATIC void _write(mp_obj_EVEL_t *EVEL, mp_obj_t b) {
5856
EVEL->dest[2] = b;
5957
mp_call_method_n_kw(1, 0, EVEL->dest);
6058
}
6159

6260
STATIC mp_obj_t _register(mp_obj_t self, mp_obj_t o) {
63-
mp_obj_EVEL_t *EVEL = self;
61+
mp_obj_EVEL_t *EVEL = mp_instance_cast_to_native_base(self, &EVEL_type);
6462
EVEL->n = 0;
65-
mp_printf(&mp_plat_print, "register %p %d\n", EVEL, EVEL->n);
6663
mp_load_method(o, MP_QSTR_write, EVEL->dest);
6764
return mp_const_none;
6865
}
6966
STATIC MP_DEFINE_CONST_FUN_OBJ_2(register_obj, _register);
7067

7168
STATIC mp_obj_t _flush(mp_obj_t self) {
72-
mp_obj_EVEL_t *EVEL = self;
73-
// mp_printf(&mp_plat_print, "flush %p %d\n", EVEL, EVEL->n);
69+
mp_obj_EVEL_t *EVEL = mp_instance_cast_to_native_base(self, &EVEL_type);
7470
if (EVEL->n != 0) {
7571
_write(EVEL, mp_obj_new_bytearray_by_ref(EVEL->n, EVEL->buf));
7672
EVEL->n = 0;
@@ -79,19 +75,19 @@ STATIC mp_obj_t _flush(mp_obj_t self) {
7975
}
8076
STATIC MP_DEFINE_CONST_FUN_OBJ_1(flush_obj, _flush);
8177

82-
STATIC void *append(mp_obj_EVEL_t *EVEL, size_t m) {
83-
if ((EVEL->n + m) > sizeof(EVEL->buf))
84-
_flush((mp_obj_t)EVEL);
85-
uint8_t *r = EVEL->buf + EVEL->n;
86-
EVEL->n += m;
87-
return (void*)r;
78+
STATIC void *append(mp_obj_t self, size_t m) {
79+
mp_obj_EVEL_t *EVEL = mp_instance_cast_to_native_base(self, &EVEL_type);
80+
if ((EVEL->n + m) > sizeof(EVEL->buf))
81+
_flush((mp_obj_t)EVEL);
82+
uint8_t *r = EVEL->buf + EVEL->n;
83+
EVEL->n += m;
84+
return (void*)r;
8885
}
8986

9087
STATIC mp_obj_t _cc(mp_obj_t self, mp_obj_t b) {
91-
mp_obj_EVEL_t *EVEL = self;
88+
mp_obj_EVEL_t *EVEL = mp_instance_cast_to_native_base(self, &EVEL_type);
9289
mp_buffer_info_t buffer_info;
9390
mp_get_buffer_raise(b, &buffer_info, MP_BUFFER_READ);
94-
// mp_printf(&mp_plat_print, "flush %p %d %p\n", EVEL, buffer_info.len, EVEL->writer);
9591
if (buffer_info.len <= sizeof(EVEL->buf)) {
9692
uint8_t *p = (uint8_t*)append(EVEL, buffer_info.len);
9793
// memcpy(p, buffer_info.buf, buffer_info.len);
@@ -152,7 +148,6 @@ STATIC mp_obj_t _cmd(size_t n_args, const mp_obj_t *args) {
152148
break;
153149
}
154150
}
155-
mp_printf(&mp_plat_print, "n=%d\n", n);
156151

157152
uint32_t *p = (uint32_t*)append(self, sizeof(uint32_t) * (1 + n));
158153
*p++ = 0xffffff00 | mp_obj_get_int_truncated(num);
@@ -164,7 +159,6 @@ STATIC mp_obj_t _cmd(size_t n_args, const mp_obj_t *args) {
164159
case 'I':
165160
case 'i':
166161
*p++ = mp_obj_get_int_truncated(*a++);
167-
mp_printf(&mp_plat_print, " %d %08x\n", p[-1]);
168162
i += 1;
169163
break;
170164
case 'H':
@@ -201,17 +195,11 @@ STATIC void EVEL_print(const mp_print_t *print, mp_obj_t self_in, mp_print_kind_
201195
STATIC mp_obj_t EVEL_make_new(const mp_obj_type_t *type, size_t n_args, const mp_obj_t *args, mp_map_t *kw_args) {
202196
// mp_arg_check_num(n_args, kw_args, 1, 1, false);
203197
mp_obj_EVEL_t *o = m_new_obj(mp_obj_EVEL_t);
204-
mp_printf(&mp_plat_print, "EVEL init\n");
205-
o->base.type = type;
206-
return o;
198+
mp_printf(&mp_plat_print, "EVEL %p make_new\n", o);
199+
o->base.type = &EVEL_type;
200+
return MP_OBJ_FROM_PTR(o);
207201
}
208202

209-
// STATIC void EVEL_attr(mp_obj_t self_in, qstr attr, mp_obj_t *dest) {
210-
// printf("HERE\n");
211-
// mp_type_type.attr(self_in, attr, dest);
212-
// printf("THERE %p %p\n", dest[0], dest[1]);
213-
// }
214-
215203
STATIC const mp_obj_type_t EVEL_type = {
216204
{ &mp_type_type },
217205
// Save on qstr's, reuse same as for module
@@ -233,5 +221,3 @@ const mp_obj_module_t eveL_module = {
233221
.base = { &mp_type_module },
234222
.globals = (mp_obj_dict_t*)&mp_module_eveL_globals,
235223
};
236-
237-
// #endif // MICROPY_PY_BUILTINS_EVEL

0 commit comments

Comments
 (0)