@@ -229,8 +229,15 @@ static mp_obj_t i2ctarget_i2c_target_request_make_new(const mp_obj_type_t *type,
229229//|
230230static mp_obj_t i2ctarget_i2c_target_request_deinit (mp_obj_t self_in ) {
231231 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.
232237 self -> target = NULL ;
233238
239+ common_hal_i2ctarget_i2c_target_close (target );
240+
234241 return mp_const_none ;
235242}
236243MP_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,
401408//| """Close and deinit the request."""
402409//| ...
403410//|
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.
416412
417413static const mp_rom_map_elem_t i2ctarget_i2c_target_request_locals_dict_table [] = {
418414 { 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 ) },
420416 { MP_ROM_QSTR (MP_QSTR_deinit ), MP_ROM_PTR (& i2ctarget_i2c_target_request_deinit_obj ) },
421417 { MP_ROM_QSTR (MP_QSTR__del__ ), MP_ROM_PTR (& i2ctarget_i2c_target_request_deinit_obj ) },
422418 { MP_ROM_QSTR (MP_QSTR_address ), MP_ROM_PTR (& i2ctarget_i2c_target_request_address_obj ) },
0 commit comments