summaryrefslogtreecommitdiffstatshomepage
path: root/py
diff options
context:
space:
mode:
authorJim Mussared <jim.mussared@gmail.com>2022-04-22 17:09:15 +1000
committerDamien George <damien@micropython.org>2022-05-03 22:28:14 +1000
commit0e7bfc88c6ac6b5d64240f91183a3cfe2ab67ade (patch)
treeb578372082eb5b661263d61a1194af3868968cf9 /py
parent6a3bc0e1a1f4dc0ad0b71ca0f168ad1a87d28859 (diff)
downloadmicropython-0e7bfc88c6ac6b5d64240f91183a3cfe2ab67ade.tar.gz
micropython-0e7bfc88c6ac6b5d64240f91183a3cfe2ab67ade.zip
all: Use mp_obj_malloc everywhere it's applicable.
This replaces occurences of foo_t *foo = m_new_obj(foo_t); foo->base.type = &foo_type; with foo_t *foo = mp_obj_malloc(foo_t, &foo_type); Excludes any places where base is a sub-field or when new0/memset is used. Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
Diffstat (limited to 'py')
-rw-r--r--py/builtinevex.c3
-rw-r--r--py/modio.c3
-rw-r--r--py/modthread.c3
-rw-r--r--py/objarray.c3
-rw-r--r--py/objattrtuple.c3
-rw-r--r--py/objboundmeth.c3
-rw-r--r--py/objcell.c3
-rw-r--r--py/objclosure.c3
-rw-r--r--py/objcomplex.c3
-rw-r--r--py/objdeque.c3
-rw-r--r--py/objdict.c3
-rw-r--r--py/objenumerate.c6
-rw-r--r--py/objfilter.c3
-rw-r--r--py/objfun.c6
-rw-r--r--py/objgenerator.c9
-rw-r--r--py/objint_longlong.c9
-rw-r--r--py/objint_mpz.c3
-rw-r--r--py/objmap.c3
-rw-r--r--py/objobject.c3
-rw-r--r--py/objproperty.c3
-rw-r--r--py/objrange.c6
-rw-r--r--py/objreversed.c3
-rw-r--r--py/objset.c6
-rw-r--r--py/objslice.c3
-rw-r--r--py/objstr.c6
-rw-r--r--py/objstringio.c3
-rw-r--r--py/objtuple.c3
-rw-r--r--py/objtype.c3
-rw-r--r--py/objzip.c3
-rw-r--r--py/runtime.c3
30 files changed, 40 insertions, 77 deletions
diff --git a/py/builtinevex.c b/py/builtinevex.c
index 4e1c6a66d1..73b77b40b7 100644
--- a/py/builtinevex.c
+++ b/py/builtinevex.c
@@ -103,8 +103,7 @@ STATIC mp_obj_t mp_builtin_compile(size_t n_args, const mp_obj_t *args) {
mp_raise_ValueError(MP_ERROR_TEXT("bad compile mode"));
}
- mp_obj_code_t *code = m_new_obj(mp_obj_code_t);
- code->base.type = &mp_type_code;
+ mp_obj_code_t *code = mp_obj_malloc(mp_obj_code_t, &mp_type_code);
code->module_fun = mp_parse_compile_execute(lex, parse_input_kind, NULL, NULL);
return MP_OBJ_FROM_PTR(code);
}
diff --git a/py/modio.c b/py/modio.c
index e79d59e4e5..3e37231f23 100644
--- a/py/modio.c
+++ b/py/modio.c
@@ -121,8 +121,7 @@ typedef struct _mp_obj_bufwriter_t {
STATIC mp_obj_t bufwriter_make_new(const mp_obj_type_t *type, size_t n_args, size_t n_kw, const mp_obj_t *args) {
mp_arg_check_num(n_args, n_kw, 2, 2, false);
size_t alloc = mp_obj_get_int(args[1]);
- mp_obj_bufwriter_t *o = m_new_obj_var(mp_obj_bufwriter_t, byte, alloc);
- o->base.type = type;
+ mp_obj_bufwriter_t *o = mp_obj_malloc_var(mp_obj_bufwriter_t, byte, alloc, type);
o->stream = args[0];
o->alloc = alloc;
o->len = 0;
diff --git a/py/modthread.c b/py/modthread.c
index 29b765493a..d22b1854cd 100644
--- a/py/modthread.c
+++ b/py/modthread.c
@@ -54,8 +54,7 @@ typedef struct _mp_obj_thread_lock_t {
} mp_obj_thread_lock_t;
STATIC mp_obj_thread_lock_t *mp_obj_new_thread_lock(void) {
- mp_obj_thread_lock_t *self = m_new_obj(mp_obj_thread_lock_t);
- self->base.type = &mp_type_thread_lock;
+ mp_obj_thread_lock_t *self = mp_obj_malloc(mp_obj_thread_lock_t, &mp_type_thread_lock);
mp_thread_mutex_init(&self->mutex);
self->locked = false;
return self;
diff --git a/py/objarray.c b/py/objarray.c
index 16a4d4aac7..bff3126a2b 100644
--- a/py/objarray.c
+++ b/py/objarray.c
@@ -639,8 +639,7 @@ mp_obj_t mp_obj_new_bytearray(size_t n, void *items) {
// Create bytearray which references specified memory area
mp_obj_t mp_obj_new_bytearray_by_ref(size_t n, void *items) {
- mp_obj_array_t *o = m_new_obj(mp_obj_array_t);
- o->base.type = &mp_type_bytearray;
+ mp_obj_array_t *o = mp_obj_malloc(mp_obj_array_t, &mp_type_bytearray);
o->typecode = BYTEARRAY_TYPECODE;
o->free = 0;
o->len = n;
diff --git a/py/objattrtuple.c b/py/objattrtuple.c
index 3422d0146a..13c281aa1c 100644
--- a/py/objattrtuple.c
+++ b/py/objattrtuple.c
@@ -71,8 +71,7 @@ STATIC void mp_obj_attrtuple_attr(mp_obj_t self_in, qstr attr, mp_obj_t *dest) {
}
mp_obj_t mp_obj_new_attrtuple(const qstr *fields, size_t n, const mp_obj_t *items) {
- mp_obj_tuple_t *o = m_new_obj_var(mp_obj_tuple_t, mp_obj_t, n + 1);
- o->base.type = &mp_type_attrtuple;
+ mp_obj_tuple_t *o = mp_obj_malloc_var(mp_obj_tuple_t, mp_obj_t, n + 1, &mp_type_attrtuple);
o->len = n;
for (size_t i = 0; i < n; i++) {
o->items[i] = items[i];
diff --git a/py/objboundmeth.c b/py/objboundmeth.c
index a3e1d302d9..9936c06e49 100644
--- a/py/objboundmeth.c
+++ b/py/objboundmeth.c
@@ -108,8 +108,7 @@ STATIC const mp_obj_type_t mp_type_bound_meth = {
};
mp_obj_t mp_obj_new_bound_meth(mp_obj_t meth, mp_obj_t self) {
- mp_obj_bound_meth_t *o = m_new_obj(mp_obj_bound_meth_t);
- o->base.type = &mp_type_bound_meth;
+ mp_obj_bound_meth_t *o = mp_obj_malloc(mp_obj_bound_meth_t, &mp_type_bound_meth);
o->meth = meth;
o->self = self;
return MP_OBJ_FROM_PTR(o);
diff --git a/py/objcell.c b/py/objcell.c
index be2ae8cd9c..2702ca5350 100644
--- a/py/objcell.c
+++ b/py/objcell.c
@@ -64,8 +64,7 @@ STATIC const mp_obj_type_t mp_type_cell = {
};
mp_obj_t mp_obj_new_cell(mp_obj_t obj) {
- mp_obj_cell_t *o = m_new_obj(mp_obj_cell_t);
- o->base.type = &mp_type_cell;
+ mp_obj_cell_t *o = mp_obj_malloc(mp_obj_cell_t, &mp_type_cell);
o->obj = obj;
return MP_OBJ_FROM_PTR(o);
}
diff --git a/py/objclosure.c b/py/objclosure.c
index 054b657896..9dc3e54532 100644
--- a/py/objclosure.c
+++ b/py/objclosure.c
@@ -89,8 +89,7 @@ const mp_obj_type_t mp_type_closure = {
};
mp_obj_t mp_obj_new_closure(mp_obj_t fun, size_t n_closed_over, const mp_obj_t *closed) {
- mp_obj_closure_t *o = m_new_obj_var(mp_obj_closure_t, mp_obj_t, n_closed_over);
- o->base.type = &mp_type_closure;
+ mp_obj_closure_t *o = mp_obj_malloc_var(mp_obj_closure_t, mp_obj_t, n_closed_over, &mp_type_closure);
o->fun = fun;
o->n_closed = n_closed_over;
memcpy(o->closed, closed, n_closed_over * sizeof(mp_obj_t));
diff --git a/py/objcomplex.c b/py/objcomplex.c
index f4c4aeffcb..56c8353e90 100644
--- a/py/objcomplex.c
+++ b/py/objcomplex.c
@@ -162,8 +162,7 @@ const mp_obj_type_t mp_type_complex = {
};
mp_obj_t mp_obj_new_complex(mp_float_t real, mp_float_t imag) {
- mp_obj_complex_t *o = m_new_obj(mp_obj_complex_t);
- o->base.type = &mp_type_complex;
+ mp_obj_complex_t *o = mp_obj_malloc(mp_obj_complex_t, &mp_type_complex);
o->real = real;
o->imag = imag;
return MP_OBJ_FROM_PTR(o);
diff --git a/py/objdeque.c b/py/objdeque.c
index c95bdeee9e..b1c59a81e9 100644
--- a/py/objdeque.c
+++ b/py/objdeque.c
@@ -57,8 +57,7 @@ STATIC mp_obj_t deque_make_new(const mp_obj_type_t *type, size_t n_args, size_t
mp_raise_ValueError(NULL);
}
- mp_obj_deque_t *o = m_new_obj(mp_obj_deque_t);
- o->base.type = type;
+ mp_obj_deque_t *o = mp_obj_malloc(mp_obj_deque_t, type);
o->alloc = maxlen + 1;
o->i_get = o->i_put = 0;
o->items = m_new0(mp_obj_t, o->alloc);
diff --git a/py/objdict.c b/py/objdict.c
index ed4376aa4f..1d8e9059a1 100644
--- a/py/objdict.c
+++ b/py/objdict.c
@@ -521,8 +521,7 @@ STATIC const mp_obj_type_t mp_type_dict_view = {
};
STATIC mp_obj_t mp_obj_new_dict_view(mp_obj_t dict, mp_dict_view_kind_t kind) {
- mp_obj_dict_view_t *o = m_new_obj(mp_obj_dict_view_t);
- o->base.type = &mp_type_dict_view;
+ mp_obj_dict_view_t *o = mp_obj_malloc(mp_obj_dict_view_t, &mp_type_dict_view);
o->dict = dict;
o->kind = kind;
return MP_OBJ_FROM_PTR(o);
diff --git a/py/objenumerate.c b/py/objenumerate.c
index d1de4add47..241aef3023 100644
--- a/py/objenumerate.c
+++ b/py/objenumerate.c
@@ -54,14 +54,12 @@ STATIC mp_obj_t enumerate_make_new(const mp_obj_type_t *type, size_t n_args, siz
MP_ARRAY_SIZE(allowed_args), allowed_args, (mp_arg_val_t *)&arg_vals);
// create enumerate object
- mp_obj_enumerate_t *o = m_new_obj(mp_obj_enumerate_t);
- o->base.type = type;
+ mp_obj_enumerate_t *o = mp_obj_malloc(mp_obj_enumerate_t, type);
o->iter = mp_getiter(arg_vals.iterable.u_obj, NULL);
o->cur = arg_vals.start.u_int;
#else
mp_arg_check_num(n_args, n_kw, 1, 2, false);
- mp_obj_enumerate_t *o = m_new_obj(mp_obj_enumerate_t);
- o->base.type = type;
+ mp_obj_enumerate_t *o = mp_obj_malloc(mp_obj_enumerate_t, type);
o->iter = mp_getiter(args[0], NULL);
o->cur = n_args > 1 ? mp_obj_get_int(args[1]) : 0;
#endif
diff --git a/py/objfilter.c b/py/objfilter.c
index 41b2a3bc5f..a402d8c648 100644
--- a/py/objfilter.c
+++ b/py/objfilter.c
@@ -36,8 +36,7 @@ typedef struct _mp_obj_filter_t {
STATIC mp_obj_t filter_make_new(const mp_obj_type_t *type, size_t n_args, size_t n_kw, const mp_obj_t *args) {
mp_arg_check_num(n_args, n_kw, 2, 2, false);
- mp_obj_filter_t *o = m_new_obj(mp_obj_filter_t);
- o->base.type = type;
+ mp_obj_filter_t *o = mp_obj_malloc(mp_obj_filter_t, type);
o->fun = args[0];
o->iter = mp_getiter(args[1], NULL);
return MP_OBJ_FROM_PTR(o);
diff --git a/py/objfun.c b/py/objfun.c
index 3542cc0e3f..0053db4493 100644
--- a/py/objfun.c
+++ b/py/objfun.c
@@ -393,8 +393,7 @@ mp_obj_t mp_obj_new_fun_bc(const mp_obj_t *def_args, const byte *code, const mp_
def_kw_args = def_args[1];
n_extra_args += 1;
}
- mp_obj_fun_bc_t *o = m_new_obj_var(mp_obj_fun_bc_t, mp_obj_t, n_extra_args);
- o->base.type = &mp_type_fun_bc;
+ mp_obj_fun_bc_t *o = mp_obj_malloc_var(mp_obj_fun_bc_t, mp_obj_t, n_extra_args, &mp_type_fun_bc);
o->bytecode = code;
o->context = context;
o->child_table = child_table;
@@ -536,8 +535,7 @@ STATIC const mp_obj_type_t mp_type_fun_asm = {
};
mp_obj_t mp_obj_new_fun_asm(size_t n_args, const void *fun_data, mp_uint_t type_sig) {
- mp_obj_fun_asm_t *o = m_new_obj(mp_obj_fun_asm_t);
- o->base.type = &mp_type_fun_asm;
+ mp_obj_fun_asm_t *o = mp_obj_malloc(mp_obj_fun_asm_t, &mp_type_fun_asm);
o->n_args = n_args;
o->fun_data = fun_data;
o->type_sig = type_sig;
diff --git a/py/objgenerator.c b/py/objgenerator.c
index 850de3fb68..c1747a88bc 100644
--- a/py/objgenerator.c
+++ b/py/objgenerator.c
@@ -59,9 +59,9 @@ STATIC mp_obj_t gen_wrap_call(mp_obj_t self_in, size_t n_args, size_t n_kw, cons
MP_BC_PRELUDE_SIG_DECODE(ip);
// allocate the generator object, with room for local stack and exception stack
- mp_obj_gen_instance_t *o = m_new_obj_var(mp_obj_gen_instance_t, byte,
- n_state * sizeof(mp_obj_t) + n_exc_stack * sizeof(mp_exc_stack_t));
- o->base.type = &mp_type_gen_instance;
+ mp_obj_gen_instance_t *o = mp_obj_malloc_var(mp_obj_gen_instance_t, byte,
+ n_state * sizeof(mp_obj_t) + n_exc_stack * sizeof(mp_exc_stack_t),
+ &mp_type_gen_instance);
o->pend_exc = mp_const_none;
o->code_state.fun_bc = self_fun;
@@ -106,8 +106,7 @@ STATIC mp_obj_t native_gen_wrap_call(mp_obj_t self_in, size_t n_args, size_t n_k
MP_BC_PRELUDE_SIG_DECODE(ip);
// Allocate the generator object, with room for local stack (exception stack not needed).
- mp_obj_gen_instance_t *o = m_new_obj_var(mp_obj_gen_instance_t, byte, n_state * sizeof(mp_obj_t));
- o->base.type = &mp_type_gen_instance;
+ mp_obj_gen_instance_t *o = mp_obj_malloc_var(mp_obj_gen_instance_t, byte, n_state * sizeof(mp_obj_t), &mp_type_gen_instance);
// Parse the input arguments and set up the code state
o->pend_exc = mp_const_none;
diff --git a/py/objint_longlong.c b/py/objint_longlong.c
index f2e88c3ea5..7fcb5462f8 100644
--- a/py/objint_longlong.c
+++ b/py/objint_longlong.c
@@ -243,8 +243,7 @@ mp_obj_t mp_obj_new_int_from_uint(mp_uint_t value) {
}
mp_obj_t mp_obj_new_int_from_ll(long long val) {
- mp_obj_int_t *o = m_new_obj(mp_obj_int_t);
- o->base.type = &mp_type_int;
+ mp_obj_int_t *o = mp_obj_malloc(mp_obj_int_t, &mp_type_int);
o->val = val;
return o;
}
@@ -254,8 +253,7 @@ mp_obj_t mp_obj_new_int_from_ull(unsigned long long val) {
if (val >> (sizeof(unsigned long long) * 8 - 1) != 0) {
mp_raise_msg(&mp_type_OverflowError, MP_ERROR_TEXT("ulonglong too large"));
}
- mp_obj_int_t *o = m_new_obj(mp_obj_int_t);
- o->base.type = &mp_type_int;
+ mp_obj_int_t *o = mp_obj_malloc(mp_obj_int_t, &mp_type_int);
o->val = val;
return o;
}
@@ -263,8 +261,7 @@ mp_obj_t mp_obj_new_int_from_ull(unsigned long long val) {
mp_obj_t mp_obj_new_int_from_str_len(const char **str, size_t len, bool neg, unsigned int base) {
// TODO this does not honor the given length of the string, but it all cases it should anyway be null terminated
// TODO check overflow
- mp_obj_int_t *o = m_new_obj(mp_obj_int_t);
- o->base.type = &mp_type_int;
+ mp_obj_int_t *o = mp_obj_malloc(mp_obj_int_t, &mp_type_int);
char *endptr;
o->val = strtoll(*str, &endptr, base);
*str = endptr;
diff --git a/py/objint_mpz.c b/py/objint_mpz.c
index ef3e017967..cbc4cb75a7 100644
--- a/py/objint_mpz.c
+++ b/py/objint_mpz.c
@@ -75,8 +75,7 @@ const mp_obj_int_t mp_sys_maxsize_obj = {
#endif
mp_obj_int_t *mp_obj_int_new_mpz(void) {
- mp_obj_int_t *o = m_new_obj(mp_obj_int_t);
- o->base.type = &mp_type_int;
+ mp_obj_int_t *o = mp_obj_malloc(mp_obj_int_t, &mp_type_int);
mpz_init_zero(&o->mpz);
return o;
}
diff --git a/py/objmap.c b/py/objmap.c
index 78c52c8925..1f9275854f 100644
--- a/py/objmap.c
+++ b/py/objmap.c
@@ -38,8 +38,7 @@ typedef struct _mp_obj_map_t {
STATIC mp_obj_t map_make_new(const mp_obj_type_t *type, size_t n_args, size_t n_kw, const mp_obj_t *args) {
mp_arg_check_num(n_args, n_kw, 2, MP_OBJ_FUN_ARGS_MAX, false);
- mp_obj_map_t *o = m_new_obj_var(mp_obj_map_t, mp_obj_t, n_args - 1);
- o->base.type = type;
+ mp_obj_map_t *o = mp_obj_malloc_var(mp_obj_map_t, mp_obj_t, n_args - 1, type);
o->n_iters = n_args - 1;
o->fun = args[0];
for (size_t i = 0; i < n_args - 1; i++) {
diff --git a/py/objobject.c b/py/objobject.c
index 00082dfe08..1652802805 100644
--- a/py/objobject.c
+++ b/py/objobject.c
@@ -36,8 +36,7 @@ typedef struct _mp_obj_object_t {
STATIC mp_obj_t object_make_new(const mp_obj_type_t *type, size_t n_args, size_t n_kw, const mp_obj_t *args) {
(void)args;
mp_arg_check_num(n_args, n_kw, 0, 0, false);
- mp_obj_object_t *o = m_new_obj(mp_obj_object_t);
- o->base.type = type;
+ mp_obj_object_t *o = mp_obj_malloc(mp_obj_object_t, type);
return MP_OBJ_FROM_PTR(o);
}
diff --git a/py/objproperty.c b/py/objproperty.c
index 8d2c292c52..49327c981e 100644
--- a/py/objproperty.c
+++ b/py/objproperty.c
@@ -47,8 +47,7 @@ STATIC mp_obj_t property_make_new(const mp_obj_type_t *type, size_t n_args, size
mp_arg_val_t vals[MP_ARRAY_SIZE(allowed_args)];
mp_arg_parse_all_kw_array(n_args, n_kw, args, MP_ARRAY_SIZE(allowed_args), allowed_args, vals);
- mp_obj_property_t *o = m_new_obj(mp_obj_property_t);
- o->base.type = type;
+ mp_obj_property_t *o = mp_obj_malloc(mp_obj_property_t, type);
o->proxy[0] = vals[ARG_fget].u_obj;
o->proxy[1] = vals[ARG_fset].u_obj;
o->proxy[2] = vals[ARG_fdel].u_obj;
diff --git a/py/objrange.c b/py/objrange.c
index 1f028eb867..5496021892 100644
--- a/py/objrange.c
+++ b/py/objrange.c
@@ -92,8 +92,7 @@ STATIC void range_print(const mp_print_t *print, mp_obj_t self_in, mp_print_kind
STATIC mp_obj_t range_make_new(const mp_obj_type_t *type, size_t n_args, size_t n_kw, const mp_obj_t *args) {
mp_arg_check_num(n_args, n_kw, 1, 3, false);
- mp_obj_range_t *o = m_new_obj(mp_obj_range_t);
- o->base.type = type;
+ mp_obj_range_t *o = mp_obj_malloc(mp_obj_range_t, type);
o->start = 0;
o->step = 1;
@@ -168,8 +167,7 @@ STATIC mp_obj_t range_subscr(mp_obj_t self_in, mp_obj_t index, mp_obj_t value) {
if (mp_obj_is_type(index, &mp_type_slice)) {
mp_bound_slice_t slice;
mp_seq_get_fast_slice_indexes(len, index, &slice);
- mp_obj_range_t *o = m_new_obj(mp_obj_range_t);
- o->base.type = &mp_type_range;
+ mp_obj_range_t *o = mp_obj_malloc(mp_obj_range_t, &mp_type_range);
o->start = self->start + slice.start * self->step;
o->stop = self->start + slice.stop * self->step;
o->step = slice.step * self->step;
diff --git a/py/objreversed.c b/py/objreversed.c
index 4254668e75..08961c0d2d 100644
--- a/py/objreversed.c
+++ b/py/objreversed.c
@@ -47,8 +47,7 @@ STATIC mp_obj_t reversed_make_new(const mp_obj_type_t *type, size_t n_args, size
return mp_call_method_n_kw(0, 0, dest);
}
- mp_obj_reversed_t *o = m_new_obj(mp_obj_reversed_t);
- o->base.type = type;
+ mp_obj_reversed_t *o = mp_obj_malloc(mp_obj_reversed_t, type);
o->seq = args[0];
o->cur_index = mp_obj_get_int(mp_obj_len(args[0])); // start at the end of the sequence
diff --git a/py/objset.c b/py/objset.c
index d2508bfbf9..26fd74398b 100644
--- a/py/objset.c
+++ b/py/objset.c
@@ -174,8 +174,7 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_1(set_clear_obj, set_clear);
STATIC mp_obj_t set_copy(mp_obj_t self_in) {
check_set_or_frozenset(self_in);
mp_obj_set_t *self = MP_OBJ_TO_PTR(self_in);
- mp_obj_set_t *other = m_new_obj(mp_obj_set_t);
- other->base.type = self->base.type;
+ mp_obj_set_t *other = mp_obj_malloc(mp_obj_set_t, self->base.type);
mp_set_init(&other->set, self->set.alloc);
other->set.used = self->set.used;
memcpy(other->set.table, self->set.table, self->set.alloc * sizeof(mp_obj_t));
@@ -579,8 +578,7 @@ const mp_obj_type_t mp_type_frozenset = {
#endif
mp_obj_t mp_obj_new_set(size_t n_args, mp_obj_t *items) {
- mp_obj_set_t *o = m_new_obj(mp_obj_set_t);
- o->base.type = &mp_type_set;
+ mp_obj_set_t *o = mp_obj_malloc(mp_obj_set_t, &mp_type_set);
mp_set_init(&o->set, n_args);
for (size_t i = 0; i < n_args; i++) {
mp_set_lookup(&o->set, items[i], MP_MAP_LOOKUP_ADD_IF_NOT_FOUND);
diff --git a/py/objslice.c b/py/objslice.c
index c65c30601b..0b34516c18 100644
--- a/py/objslice.c
+++ b/py/objslice.c
@@ -104,8 +104,7 @@ const mp_obj_type_t mp_type_slice = {
};
mp_obj_t mp_obj_new_slice(mp_obj_t ostart, mp_obj_t ostop, mp_obj_t ostep) {
- mp_obj_slice_t *o = m_new_obj(mp_obj_slice_t);
- o->base.type = &mp_type_slice;
+ mp_obj_slice_t *o = mp_obj_malloc(mp_obj_slice_t, &mp_type_slice);
o->start = ostart;
o->stop = ostop;
o->step = ostep;
diff --git a/py/objstr.c b/py/objstr.c
index 321bb058dc..6e5a316d78 100644
--- a/py/objstr.c
+++ b/py/objstr.c
@@ -2026,8 +2026,7 @@ const mp_obj_str_t mp_const_empty_bytes_obj = {{&mp_type_bytes}, 0, 0, (const by
// the data is copied across. This function should only be used if the type is bytes,
// or if the type is str and the string data is known to be not interned.
mp_obj_t mp_obj_new_str_copy(const mp_obj_type_t *type, const byte *data, size_t len) {
- mp_obj_str_t *o = m_new_obj(mp_obj_str_t);
- o->base.type = type;
+ mp_obj_str_t *o = mp_obj_malloc(mp_obj_str_t, type);
o->len = len;
if (data) {
o->hash = qstr_compute_hash(data, len);
@@ -2070,8 +2069,7 @@ mp_obj_t mp_obj_new_str_from_vstr(const mp_obj_type_t *type, vstr_t *vstr) {
}
// make a new str/bytes object
- mp_obj_str_t *o = m_new_obj(mp_obj_str_t);
- o->base.type = type;
+ mp_obj_str_t *o = mp_obj_malloc(mp_obj_str_t, type);
o->len = vstr->len;
o->hash = qstr_compute_hash((byte *)vstr->buf, vstr->len);
if (vstr->len + 1 == vstr->alloc) {
diff --git a/py/objstringio.c b/py/objstringio.c
index ef942e74e8..8b6c7531d7 100644
--- a/py/objstringio.c
+++ b/py/objstringio.c
@@ -177,8 +177,7 @@ STATIC mp_obj_t stringio___exit__(size_t n_args, const mp_obj_t *args) {
STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(stringio___exit___obj, 4, 4, stringio___exit__);
STATIC mp_obj_stringio_t *stringio_new(const mp_obj_type_t *type) {
- mp_obj_stringio_t *o = m_new_obj(mp_obj_stringio_t);
- o->base.type = type;
+ mp_obj_stringio_t *o = mp_obj_malloc(mp_obj_stringio_t, type);
o->pos = 0;
o->ref_obj = MP_OBJ_NULL;
return o;
diff --git a/py/objtuple.c b/py/objtuple.c
index 67d7bc356f..e0cec84473 100644
--- a/py/objtuple.c
+++ b/py/objtuple.c
@@ -243,8 +243,7 @@ mp_obj_t mp_obj_new_tuple(size_t n, const mp_obj_t *items) {
if (n == 0) {
return mp_const_empty_tuple;
}
- mp_obj_tuple_t *o = m_new_obj_var(mp_obj_tuple_t, mp_obj_t, n);
- o->base.type = &mp_type_tuple;
+ mp_obj_tuple_t *o = mp_obj_malloc_var(mp_obj_tuple_t, mp_obj_t, n, &mp_type_tuple);
o->len = n;
if (items) {
for (size_t i = 0; i < n; i++) {
diff --git a/py/objtype.c b/py/objtype.c
index e320adc8bb..37c1e3bd22 100644
--- a/py/objtype.c
+++ b/py/objtype.c
@@ -99,8 +99,7 @@ STATIC
mp_obj_instance_t *mp_obj_new_instance(const mp_obj_type_t *class, const mp_obj_type_t **native_base) {
size_t num_native_bases = instance_count_native_bases(class, native_base);
assert(num_native_bases < 2);
- mp_obj_instance_t *o = m_new_obj_var(mp_obj_instance_t, mp_obj_t, num_native_bases);
- o->base.type = class;
+ mp_obj_instance_t *o = mp_obj_malloc_var(mp_obj_instance_t, mp_obj_t, num_native_bases, class);
mp_map_init(&o->members, 0);
// Initialise the native base-class slot (should be 1 at most) with a valid
// object. It doesn't matter which object, so long as it can be uniquely
diff --git a/py/objzip.c b/py/objzip.c
index 4abc917c3f..81fa1d587e 100644
--- a/py/objzip.c
+++ b/py/objzip.c
@@ -39,8 +39,7 @@ typedef struct _mp_obj_zip_t {
STATIC mp_obj_t zip_make_new(const mp_obj_type_t *type, size_t n_args, size_t n_kw, const mp_obj_t *args) {
mp_arg_check_num(n_args, n_kw, 0, MP_OBJ_FUN_ARGS_MAX, false);
- mp_obj_zip_t *o = m_new_obj_var(mp_obj_zip_t, mp_obj_t, n_args);
- o->base.type = type;
+ mp_obj_zip_t *o = mp_obj_malloc_var(mp_obj_zip_t, mp_obj_t, n_args, type);
o->n_iters = n_args;
for (size_t i = 0; i < n_args; i++) {
o->iters[i] = mp_getiter(args[i], NULL);
diff --git a/py/runtime.c b/py/runtime.c
index 02b866d839..184de7bc96 100644
--- a/py/runtime.c
+++ b/py/runtime.c
@@ -1067,8 +1067,7 @@ STATIC const mp_obj_type_t mp_type_checked_fun = {
};
STATIC mp_obj_t mp_obj_new_checked_fun(const mp_obj_type_t *type, mp_obj_t fun) {
- mp_obj_checked_fun_t *o = m_new_obj(mp_obj_checked_fun_t);
- o->base.type = &mp_type_checked_fun;
+ mp_obj_checked_fun_t *o = mp_obj_malloc(mp_obj_checked_fun_t, &mp_type_checked_fun);
o->type = type;
o->fun = fun;
return MP_OBJ_FROM_PTR(o);