10000 all: Use mp_obj_malloc_with_finaliser everywhere it's applicable. · micropython/micropython@cae690d · GitHub
[go: up one dir, main page]

Skip to content

Commit cae690d

Browse files
committed
all: Use mp_obj_malloc_with_finaliser everywhere it's applicable.
Signed-off-by: Damien George <damien@micropython.org>
1 parent 4133c03 commit cae690d

19 files changed

+30
-55
lines changed

extmod/modlwip.c

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -831,8 +831,7 @@ STATIC void lwip_socket_print(const mp_print_t *print, mp_obj_t self_in, mp_prin
831831
STATIC mp_obj_t lwip_socket_make_new(const mp_obj_type_t *type, size_t n_args, size_t n_kw, const mp_obj_t *args) {
832832
mp_arg_check_num(n_args, n_kw, 0, 4, false);
833833

834-
lwip_socket_obj_t *socket = m_new_obj_with_finaliser(lwip_socket_obj_t);
835-
socket->base.type = &lwip_socket_type;
834+
lwip_socket_obj_t *socket = mp_obj_malloc_with_finaliser(lwip_socket_obj_t, &lwip_socket_type);
836835
socket->timeout = -1;
837836
socket->recv_offset = 0;
838837
socket->domain = MOD_NETWORK_AF_INET;
@@ -994,8 +993,7 @@ STATIC mp_obj_t lwip_socket_accept(mp_obj_t self_in) {
994993

995994
// Create new socket object, do it here because we must not raise an out-of-memory
996995
// exception when the LWIP concurrency lock is held
997-
lwip_socket_obj_t *socket2 = m_new_obj_with_finaliser(lwip_socket_obj_t);
998-
socket2->base.type = &lwip_socket_type;
996+
lwip_socket_obj_t *socket2 = mp_obj_malloc_with_finaliser(lwip_socket_obj_t, &lwip_socket_type);
999997

1000998
MICROPY_PY_LWIP_ENTER
1001999

extmod/modsocket.c

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,7 @@ STATIC mp_obj_t socket_make_new(const mp_obj_type_t *type, size_t n_args, size_t
5454
mp_arg_check_num(n_args, n_kw, 0, 3, false);
5555

5656
// create socket object (not bound to any NIC yet)
57-
mod_network_socket_obj_t *s = m_new_obj_with_finaliser(mod_network_socket_obj_t);
58-
s->base.type = &socket_type;
57+
mod_network_socket_obj_t *s = mp_obj_malloc_with_finaliser(mod_network_socket_obj_t, &socket_type);
5958
s->nic = MP_OBJ_NULL;
6059
s->nic_protocol = NULL;
6160
s->domain = MOD_NETWORK_AF_INET;
@@ -163,8 +162,7 @@ STATIC mp_obj_t socket_accept(mp_obj_t self_in) {
163162

164163
// create new socket object
165164
// starts with empty NIC so that finaliser doesn't run close() method if accept() fails
166-
mod_network_socket_obj_t *socket2 = m_new_obj_with_finaliser(mod_network_socket_obj_t);
167-
socket2->base.type = &socket_type;
165+
mod_network_socket_obj_t *socket2 = mp_obj_malloc_with_finaliser(mod_network_socket_obj_t, &socket_type);
168166
socket2->nic = MP_OBJ_NULL;
169167
socket2->nic_protocol = NULL;
170168

extmod/modtls_axtls.c

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -145,11 +145,10 @@ STATIC mp_obj_t ssl_context_make_new(const mp_obj_type_t *type_in, size_t n_args
145145

146146
// Create SSLContext object.
147147
#if MICROPY_PY_SSL_FINALISER
148-
mp_obj_ssl_context_t *self = m_new_obj_with_finaliser(mp_obj_ssl_context_t);
148+
mp_obj_ssl_context_t *self = mp_obj_malloc_with_finaliser(mp_obj_ssl_context_t, type_in);
149149
#else
150-
mp_obj_ssl_context_t *self = m_new_obj(mp_obj_ssl_context_t);
150+
mp_obj_ssl_context_t *self = mp_obj_malloc(mp_obj_ssl_context_t, type_in);
151151
#endif
152-
self->base.type = type_in;
153152
self->key = mp_const_none;
154153
self->cert = mp_const_none;
155154

@@ -210,11 +209,10 @@ STATIC mp_obj_t ssl_socket_make_new(mp_obj_ssl_context_t *ssl_context, mp_obj_t
210209
bool server_side, bool do_handshake_on_connect, mp_obj_t server_hostname) {
211210

212211
#if MICROPY_PY_SSL_FINALISER
213-
mp_obj_ssl_socket_t *o = m_new_obj_with_finaliser(mp_obj_ssl_socket_t);
212+
mp_obj_ssl_socket_t *o = mp_obj_malloc_with_finaliser(mp_obj_ssl_socket_t, &ssl_socket_type);
214213
#else
215-
mp_obj_ssl_socket_t *o = m_new_obj(mp_obj_ssl_socket_t);
214+
mp_obj_ssl_socket_t *o = mp_obj_malloc(mp_obj_ssl_socket_t, &ssl_socket_type);
216215
#endif
217-
o->base.type = &ssl_socket_type;
218216
o->buf = NULL;
219217
o->bytes_left = 0;
220218
o->sock = MP_OBJ_NULL;

extmod/modtls_mbedtls.c

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -210,11 +210,10 @@ STATIC mp_obj_t ssl_context_make_new(const mp_obj_type_t *type_in, size_t n_args
210210

211211
// Create SSLContext object.
212212
#if MICROPY_PY_SSL_FINALISER
213-
mp_obj_ssl_context_t *self = m_new_obj_with_finaliser(mp_obj_ssl_context_t);
213+
mp_obj_ssl_context_t *self = mp_obj_malloc_with_finaliser(mp_obj_ssl_context_t, type_in);
214214
#else
215-
mp_obj_ssl_context_t *self = m_new_obj(mp_obj_ssl_context_t);
215+
mp_obj_ssl_context_t *self = mp_obj_malloc(mp_obj_ssl_context_t, type_in);
216216
#endif
217-
self->base.type = type_in;
218217

219218
// Initialise mbedTLS state.
220219
mbedtls_ssl_config_init(&self->conf);
@@ -488,11 +487,10 @@ STATIC mp_obj_t ssl_socket_make_new(mp_obj_ssl_context_t *ssl_context, mp_obj_t
488487
mp_get_stream_raise(sock, MP_STREAM_OP_READ | MP_STREAM_OP_WRITE | MP_STREAM_OP_IOCTL);
489488

490489
#if MICROPY_PY_SSL_FINALISER
491-
mp_obj_ssl_socket_t *o = m_new_obj_with_finaliser(mp_obj_ssl_socket_t);
490+
mp_obj_ssl_socket_t *o = mp_obj_malloc_with_finaliser(mp_obj_ssl_socket_t, &ssl_socket_type);
492491
#else
493-
mp_obj_ssl_socket_t *o = m_new_obj(mp_obj_ssl_socket_t);
492+
mp_obj_ssl_socket_t *o = mp_obj_malloc(mp_obj_ssl_socket_t, &ssl_socket_type);
494493
#endif
495-
o->base.type = &ssl_socket_type;
496494
o->ssl_context = ssl_context;
497495
o->sock = sock;
498496
o->poll_mask = 0;

extmod/vfs_fat.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -188,8 +188,7 @@ STATIC mp_obj_t fat_vfs_ilistdir_func(size_t n_args, const mp_obj_t *args) {
188188
}
189189

190190
// Create a new iterator object to list the dir
191-
mp_vfs_fat_ilistdir_it_t *iter = m_new_obj_with_finaliser(mp_vfs_fat_ilistdir_it_t);
192-
iter->base.type = &mp_type_polymorph_iter_with_finaliser;
191+
mp_vfs_fat_ilistdir_it_t *iter = mp_obj_malloc_with_finaliser(mp_vfs_fat_ilistdir_it_t, &mp_type_polymorph_iter_with_finaliser);
193192
iter->iternext = mp_vfs_fat_ilistdir_it_iternext;
194193
iter->finaliser = mp_vfs_fat_ilistdir_it_del;
195194
iter->is_str = is_str_type;

extmod/vfs_fat_file.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -228,8 +228,7 @@ STATIC mp_obj_t fat_vfs_open(mp_obj_t self_in, mp_obj_t path_in, mp_obj_t mode_i
228228
}
229229
}
230230

231-
pyb_file_obj_t *o = m_new_obj_with_finaliser(pyb_file_obj_t);
232-
o->base.type = type;
231+
pyb_file_obj_t *o = mp_obj_malloc_with_finaliser(pyb_file_obj_t, type);
233232

234233
const char *fname = mp_obj_str_get_str(path_in);
235234
FRESULT res = f_open(&self->fatfs, &o->fp, fname, mode);

extmod/vfs_lfsx.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -224,8 +224,7 @@ STATIC mp_obj_t MP_VFS_LFSx(ilistdir_func)(size_t n_args, const mp_obj_t *args)
224224
path = vstr_null_terminated_str(&self->cur_dir);
225225
}
226226

227-
MP_VFS_LFSx(ilistdir_it_t) * iter = m_new_obj_with_finaliser(MP_VFS_LFSx(ilistdir_it_t));
228-
iter->base.type = &mp_type_polymorph_iter_with_finaliser;
227+
MP_VFS_LFSx(ilistdir_it_t) * iter = mp_obj_malloc_with_finaliser(MP_VFS_LFSx(ilistdir_it_t), &mp_type_polymorph_iter_with_finaliser);
229228

230229
iter->iternext = MP_VFS_LFSx(ilistdir_it_iternext);
231230
iter->finaliser = MP_VFS_LFSx(ilistdir_it_del);

extmod/vfs_lfsx_file.c

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -90,11 +90,10 @@ mp_obj_t MP_VFS_LFSx(file_open)(mp_obj_t self_in, mp_obj_t path_in, mp_obj_t mod
9090
}
9191

9292
#if LFS_BUILD_VERSION == 1
93-
MP_OBJ_VFS_LFSx_FILE *o = m_new_obj_var_with_finaliser(MP_OBJ_VFS_LFSx_FILE, file_buffer, uint8_t, self->lfs.cfg->prog_size);
93+
MP_OBJ_VFS_LFSx_FILE *o = mp_obj_malloc_var_with_finaliser(MP_OBJ_VFS_LFSx_FILE, uint8_t, self->lfs.cfg->prog_size, type);
9494
#else
95-
MP_OBJ_VFS_LFSx_FILE *o = m_new_obj_var_with_finaliser(MP_OBJ_VFS_LFSx_FILE, file_buffer, uint8_t, self->lfs.cfg->cache_size);
95+
MP_OBJ_VFS_LFSx_FILE *o = mp_obj_malloc_var_with_finaliser(MP_OBJ_VFS_LFSx_FILE, uint8_t, self->lfs.cfg->cache_size, type);
9696
#endif
97-
o->base.type = type;
9897
o->vfs = self;
9998
#if !MICROPY_GC_CONSERVATIVE_CLEAR
10099
memset(&o->file, 0, sizeof(o->file));

extmod/vfs_posix.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -278,8 +278,7 @@ STATIC mp_obj_t vfs_posix_ilistdir_it_del(mp_obj_t self_in) {
278278

279279
STATIC mp_obj_t vfs_posix_ilistdir(mp_obj_t self_in, mp_obj_t path_in) {
280280
mp_obj_vfs_posix_t *self = MP_OBJ_TO_PTR(self_in);
281-
vfs_posix_ilistdir_it_t *iter = m_new_obj_with_finaliser(vfs_posix_ilistdir_it_t);
282-
iter->base.type = &mp_type_polymorph_iter_with_finaliser;
281+
vfs_posix_ilistdir_it_t *iter = mp_obj_malloc_with_finaliser(vfs_posix_ilistdir_it_t, &mp_type_polymorph_iter_with_finaliser);
283282
iter->iternext = vfs_posix_ilistdir_it_iternext;
284283
iter->finaliser = vfs_posix_ilistdir_it_del;
285284
iter->is_str = mp_obj_get_type(path_in) == &mp_type_str;

extmod/vfs_posix_file.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,6 @@ STATIC void vfs_posix_file_print(const mp_print_t *print, mp_obj_t self_in, mp_p
6363
}
6464

6565
mp_obj_t mp_vfs_posix_file_open(const mp_obj_type_t *type, mp_obj_t file_in, mp_obj_t mode_in) {
66-
mp_obj_vfs_posix_file_t *o = m_new_obj_with_finaliser(mp_obj_vfs_posix_file_t);
6766
const char *mode_s = mp_obj_str_get_str(mode_in);
6867

6968
int mode_rw = 0, mode_x = 0;
@@ -92,7 +91,7 @@ mp_obj_t mp_vfs_posix_file_open(const mp_obj_type_t *type, mp_obj_t file_in, mp_
9291
}
9392
}
9493

95-
o->base.type = type;
94+
mp_obj_vfs_posix_file_t *o = mp_obj_malloc_with_finaliser(mp_obj_vfs_posix_file_t, type);
9695

9796
mp_obj_t fid = file_in;
9897

ports/cc3200/mods/modsocket.c

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -436,8 +436,7 @@ STATIC mp_obj_t socket_make_new(const mp_obj_type_t *type, size_t n_args, size_t
436436
mp_arg_check_num(n_args, n_kw, 0, 4, false);
437437

438438
// create socket object
439-
mod_network_socket_obj_t *s = m_new_obj_with_finaliser(mod_network_socket_obj_t);
440-
s->base.type = (mp_obj_t)&socket_type;
439+
mod_network_socket_obj_t *s = mp_obj_malloc_with_finaliser(mod_network_socket_obj_t, &socket_type);
441440
s->sock_base.u_param.domain = SL_AF_INET;
442441
s->sock_base.u_param.type = SL_SOCK_STREAM;
443442
s->sock_base.u_param.proto = SL_IPPROTO_TCP;
@@ -508,7 +507,7 @@ STATIC mp_obj_t socket_accept(mp_obj_t self_in) {
508507
mod_network_socket_obj_t *self = self_in;
509508

510509
// create new socket object
511-
mod_network_socket_obj_t *socket2 = m_new_obj_with_finaliser(mod_network_socket_obj_t);
510+
mod_network_socket_obj_t *socket2 = mp_obj_malloc_with_finaliser(mod_network_socket_obj_t, self->base.type);
512511
// the new socket inherits all properties from its parent
513512
memcpy (socket2, self, sizeof(mod_network_socket_obj_t));
514513

ports/esp32/esp32_rmt.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -131,8 +131,7 @@ STATIC mp_obj_t esp32_rmt_make_new(const mp_obj_type_t *type, size_t n_args, siz
131131
mp_raise_ValueError(MP_ERROR_TEXT("clock_div must be between 1 and 255"));
132132
}
133133

134-
esp32_rmt_obj_t *self = m_new_obj_with_finaliser(esp32_rmt_obj_t);
135-
self->base.type = &esp32_rmt_type;
134+
esp32_rmt_obj_t *self = mp_obj_malloc_with_finaliser(esp32_rmt_obj_t, &esp32_rmt_type);
136135
self->channel_id = channel_id;
137136
self->pin = pin_id;
138137
self->clock_div = clock_div;

ports/esp32/machine_i2s.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -405,8 +405,7 @@ STATIC machine_i2s_obj_t *mp_machine_i2s_make_new_instance(mp_int_t i2s_id) {
405405

406406
machine_i2s_obj_t *self;
407407
if (MP_STATE_PORT(machine_i2s_obj)[i2s_id] == NULL) {
408-
self = m_new_obj_with_finaliser(machine_i2s_obj_t);
409-
self->base.type = &machine_i2s_type;
408+
self = mp_obj_malloc_with_finaliser(machine_i2s_obj_t, &machine_i2s_type);
410409
MP_STATE_PORT(machine_i2s_obj)[i2s_id] = self;
411410
self->i2s_id = i2s_id;
412411
} else {

ports/esp32/machine_sdcard.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -224,8 +224,7 @@ STATIC mp_obj_t machine_sdcard_make_new(const mp_obj_type_t *type, size_t n_args
224224

225225
DEBUG_printf(" Setting up host configuration");
226226

227-
sdcard_card_obj_t *self = m_new_obj_with_finaliser(sdcard_card_obj_t);
228-
self->base.type = &machine_sdcard_type;
227+
sdcard_card_obj_t *self = mp_obj_malloc_with_finaliser(sdcard_card_obj_t, &machine_sdcard_type);
229228
self->flags = 0;
230229
// Note that these defaults are macros that expand to structure
231230
// constants so we can't directly assign them to fields.

ports/esp32/modsocket.c

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -270,8 +270,7 @@ STATIC void _socket_getaddrinfo(const mp_obj_t addrtuple, struct addrinfo **resp
270270
STATIC mp_obj_t socket_make_new(const mp_obj_type_t *type_in, size_t n_args, size_t n_kw, const mp_obj_t *args) {
271271
mp_arg_check_num(n_args, n_kw, 0, 3, false);
272272

273-
socket_obj_t *sock = m_new_obj_with_finaliser(socket_obj_t);
274-
sock->base.type = type_in;
273+
socket_obj_t *sock = mp_obj_malloc_with_finaliser(socket_obj_t, type_in);
275274
sock->domain = AF_INET;
276275
sock->type = SOCK_STREAM;
277276
sock->proto = 0;
@@ -364,8 +363,7 @@ STATIC mp_obj_t socket_accept(const mp_obj_t arg0) {
364363
}
365364

366365
// create new socket object
367-
socket_obj_t *sock = m_new_obj_with_finaliser(socket_obj_t);
368-
sock->base.type = self->base.type;
366+
socket_obj_t *sock = mp_obj_malloc_with_finaliser(socket_obj_t, self->base.type);
369367
sock->fd = new_fd;
370368
sock->domain = self->domain;
371369
sock->type = self->type;

ports/esp32/network_ppp.c

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -87,9 +87,7 @@ static void ppp_status_cb(ppp_pcb *pcb, int err_code, void *ctx) {
8787
STATIC mp_obj_t ppp_make_new(mp_obj_t stream) {
8888
mp_get_stream_raise(stream, MP_STREAM_OP_READ | MP_STREAM_OP_WRITE);
8989

90-
ppp_if_obj_t *self = m_new_obj_with_finaliser(ppp_if_obj_t);
91-
92-
self->base.type = &ppp_if_type;
90+
ppp_if_obj_t *self = mp_obj_malloc_with_finaliser(ppp_if_obj_t, &ppp_if_type);
9391
self->stream = stream;
9492
self->active = false;
9593
self->connected = false;

ports/rp2/machine_timer.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -105,8 +105,7 @@ STATIC mp_obj_t machine_timer_init_helper(machine_timer_obj_t *self, size_t n_ar
105105
}
106106

107107
STATIC mp_obj_t machine_timer_make_new(const mp_obj_type_t *type, size_t n_args, size_t n_kw, const mp_obj_t *args) {
108-
machine_timer_obj_t *self = m_new_obj_with_finaliser(machine_timer_obj_t);
109-
self->base.type = &machine_timer_type;
108+
machine_timer_obj_t *self = mp_obj_malloc_with_finaliser(machine_timer_obj_t, &machine_timer_type);
110109
self->pool = alarm_pool_get_default();
111110
self->alarm_id = ALARM_ID_INVALID;
112111

ports/rp2/rp2_dma.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -145,8 +145,7 @@ STATIC mp_obj_t rp2_dma_make_new(const mp_obj_type_t *type, size_t n_args, size_
145145
mp_raise_OSError(MP_EBUSY);
146146
}
147147

148-
rp2_dma_obj_t *self = m_new_obj_with_finaliser(rp2_dma_obj_t);
149-
self->base.type = &rp2_dma_type;
148+
rp2_dma_obj_t *self = mp_obj_malloc_with_finaliser(rp2_dma_obj_t, &rp2_dma_type);
150149
self->channel = dma_channel;
151150

152151
// Return the DMA object.

ports/zephyr/modsocket.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -107,8 +107,7 @@ STATIC mp_obj_t format_inet_addr(struct sockaddr *addr, mp_obj_t port) {
107107
}
108108

109109
socket_obj_t *socket_new(void) {
110-
socket_obj_t *socket = m_new_obj_with_finaliser(socket_obj_t);
111-
socket->base.type = (mp_obj_t)&socket_type;
110+
socket_obj_t *socket = mp_obj_malloc_with_finaliser(socket_obj_t, &socket_type);
112111
socket->state = STATE_NEW;
113112
return socket;
114113
}

0 commit comments

Comments
 (0)
0