@@ -18,15 +18,15 @@ void *memmove(void *dest, const void *src, size_t n) {
18
18
}
19
19
20
20
void * malloc (size_t n ) {
21
- void * ptr = m_malloc (n );
21
+ void * ptr = m_malloc (n , false );
22
22
return ptr ;
23
23
}
24
24
void * realloc (void * ptr , size_t n ) {
25
25
mp_printf (& mp_plat_print , "UNDEF %d\n" , __LINE__ );
26
26
return NULL ;
27
27
}
28
28
void * calloc (size_t n , size_t m ) {
29
- void * ptr = m_malloc (n * m );
29
+ void * ptr = m_malloc (n * m , false );
30
30
// memory already cleared by conservative GC
31
31
return ptr ;
32
32
}
@@ -51,7 +51,7 @@ int *__errno (void)
51
51
52
52
ssize_t mp_stream_posix_write (void * stream , const void * buf , size_t len ) {
53
53
mp_obj_base_t * o = stream ;
54
- const mp_stream_p_t * stream_p = o -> type -> protocol ;
54
+ const mp_stream_p_t * stream_p = o -> type -> ext [ 0 ]. protocol ;
55
55
mp_uint_t out_sz = stream_p -> write (MP_OBJ_FROM_PTR (stream ), buf , len , & native_errno );
56
56
if (out_sz == MP_STREAM_ERROR ) {
57
57
return -1 ;
@@ -62,7 +62,7 @@ ssize_t mp_stream_posix_write(void *stream, const void *buf, size_t len) {
62
62
63
63
ssize_t mp_stream_posix_read (void * stream , void * buf , size_t len ) {
64
64
mp_obj_base_t * o = stream ;
65
- const mp_stream_p_t * stream_p = o -> type -> protocol ;
65
+ const mp_stream_p_t * stream_p = o -> type -> ext [ 0 ]. protocol ;
66
66
mp_uint_t out_sz = stream_p -> read (MP_OBJ_FROM_PTR (stream ), buf , len , & native_errno );
67
67
if (out_sz == MP_STREAM_ERROR ) {
68
68
return -1 ;
@@ -73,7 +73,7 @@ ssize_t mp_stream_posix_read(void *stream, void *buf, size_t len) {
73
73
74
74
off_t mp_stream_posix_lseek (void * stream , off_t offset , int whence ) {
75
75
const mp_obj_base_t * o = stream ;
76
- const mp_stream_p_t * stream_p = o -> type -> protocol ;
76
+ const mp_stream_p_t * stream_p = o -> type -> ext [ 0 ]. protocol ;
77
77
struct mp_stream_seek_t seek_s ;
78
78
seek_s .offset = offset ;
79
79
seek_s .whence = whence ;
@@ -86,15 +86,15 @@ off_t mp_stream_posix_lseek(void *stream, off_t offset, int whence) {
86
86
87
87
int mp_stream_posix_fsync (void * stream ) {
88
88
mp_obj_base_t * o = stream ;
89
- const mp_stream_p_t * stream_p = o -> type -> protocol ;
89
+ const mp_stream_p_t * stream_p = o -> type -> ext [ 0 ]. protocol ;
90
90
mp_uint_t res = stream_p -> ioctl (MP_OBJ_FROM_PTR (stream ), MP_STREAM_FLUSH , 0 , & native_errno );
91
91
if (res == MP_STREAM_ERROR ) {
92
92
return -1 ;
93
93
}
94
94
return res ;
95
95
}
96
96
97
- mp_obj_type_t btree_type ;
97
+ mp_obj_full_type_t btree_type ;
98
98
99
99
#include "extmod/modbtree.c"
100
100
@@ -123,12 +123,13 @@ mp_obj_t mpy_init(mp_obj_fun_bc_t *self, size_t n_args, size_t n_kw, mp_obj_t *a
123
123
MP_DYNRUNTIME_INIT_ENTRY
124
124
125
125
btree_type .base .type = (void * )& mp_fun_table .type_type ;
126
+ btree_type .flags = MP_TYPE_FLAG_EXTENDED ;
126
127
btree_type .name = MP_QSTR_btree ;
127
128
btree_type .print = btree_print ;
128
- btree_type .getiter = btree_getiter ;
129
- btree_type .iternext = btree_iternext ;
130
- btree_type .binary_op = btree_binary_op ;
131
- btree_type .subscr = btree_subscr ;
129
+ btree_type .ext [ 0 ]. getiter = btree_getiter ;
130
+ btree_type .ext [ 0 ]. iternext = btree_iternext ;
131
+ btree_type .ext [ 0 ]. binary_op = btree_binary_op ;
132
+ btree_type .ext [ 0 ]. subscr = btree_subscr ;
132
133
btree_locals_dict_table [0 ] = (mp_map_elem_t ){ MP_OBJ_NEW_QSTR (MP_QSTR_close ), MP_OBJ_FROM_PTR (& btree_close_obj ) };
133
134
btree_locals_dict_table [1 ] = (mp_map_elem_t ){ MP_OBJ_NEW_QSTR (MP_QSTR_flush ), MP_OBJ_FROM_PTR (& btree_flush_obj ) };
134
135
btree_locals_dict_table [2 ] = (mp_map_elem_t ){ MP_OBJ_NEW_QSTR (MP_QSTR_get ), MP_OBJ_FROM_PTR (& btree_get_obj ) };
0 commit comments