@@ -229,8 +229,15 @@ static mp_obj_t i2ctarget_i2c_target_request_make_new(const mp_obj_type_t *type,
229
229
//|
230
230
static mp_obj_t i2ctarget_i2c_target_request_deinit (mp_obj_t self_in ) {
231
231
i2ctarget_i2c_target_request_obj_t * self = MP_OBJ_TO_PTR (self_in );
232
+ target_request_check_for_deinit (self );
233
+
234
+ i2ctarget_i2c_target_obj_t * target = self -> target ;
235
+
236
+ // Deinit I2CTargetRequest first in case _close() fails.
232
237
self -> target = NULL ;
233
238
239
+ common_hal_i2ctarget_i2c_target_close (target );
240
+
234
241
return mp_const_none ;
235
242
}
236
243
MP_DEFINE_CONST_FUN_OBJ_1 (i2ctarget_i2c_target_request_deinit_obj , i2ctarget_i2c_target_request_deinit );
@@ -401,22 +408,11 @@ MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(i2ctarget_i2c_target_request_ack_obj, 1, 2,
401
408
//| """Close and deinit the request."""
402
409
//| ...
403
410
//|
404
- static mp_obj_t i2ctarget_i2c_target_request__exit__ (size_t n_args , const mp_obj_t * args ) {
405
- i2ctarget_i2c_target_request_obj_t * self = MP_OBJ_TO_PTR (args [0 ]);
406
- target_request_check_for_deinit (self );
407
-
408
- i2ctarget_i2c_target_obj_t * target = self -> target ;
409
- // Deinit target request first in case _close() fails.
410
- i2ctarget_i2c_target_request_deinit (args [0 ]);
411
-
412
- common_hal_i2ctarget_i2c_target_close (target );
413
- return mp_const_none ;
414
- }
415
- static MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN (i2ctarget_i2c_target_request___exit___obj , 4 , 4 , i2ctarget_i2c_target_request__exit__ ) ;
411
+ // Provided by context manager helper.
416
412
417
413
static const mp_rom_map_elem_t i2ctarget_i2c_target_request_locals_dict_table [] = {
418
414
{ MP_ROM_QSTR (MP_QSTR___enter__ ), MP_ROM_PTR (& default___enter___obj ) },
419
- { MP_ROM_QSTR (MP_QSTR___exit__ ), MP_ROM_PTR (& i2ctarget_i2c_target_request___exit___obj ) },
415
+ { MP_ROM_QSTR (MP_QSTR___exit__ ), MP_ROM_PTR (& default___exit___obj ) },
420
416
{ MP_ROM_QSTR (MP_QSTR_deinit ), MP_ROM_PTR (& i2ctarget_i2c_target_request_deinit_obj ) },
421
417
{ MP_ROM_QSTR (MP_QSTR__del__ ), MP_ROM_PTR (& i2ctarget_i2c_target_request_deinit_obj ) },
422
418
{ MP_ROM_QSTR (MP_QSTR_address ), MP_ROM_PTR (& i2ctarget_i2c_target_request_address_obj ) },
0 commit comments