@@ -108,15 +108,6 @@ STATIC mp_uint_t file_obj_write(mp_obj_t self_in, const void *buf, mp_uint_t siz
108108 return sz_out ;
109109}
110110
111- STATIC mp_obj_t file_obj_flush (mp_obj_t self_in ) {
112- pyb_file_obj_t * self = MP_OBJ_TO_PTR (self_in );
113- FRESULT res = f_sync (& self -> fp );
114- if (res != FR_OK ) {
115- mp_raise_OSError (fresult_to_errno_table [res ]);
116- }
117- return mp_const_none ;
118- }
119- STATIC MP_DEFINE_CONST_FUN_OBJ_1 (file_obj_flush_obj , file_obj_flush );
120111
121112STATIC mp_obj_t file_obj_close (mp_obj_t self_in ) {
122113 pyb_file_obj_t * self = MP_OBJ_TO_PTR (self_in );
@@ -164,6 +155,14 @@ STATIC mp_uint_t file_obj_ioctl(mp_obj_t o_in, mp_uint_t request, uintptr_t arg,
164155 s -> offset = f_tell (& self -> fp );
165156 return 0 ;
166157
158+ } else if (request == MP_STREAM_FLUSH ) {
159+ FRESULT res = f_sync (& self -> fp );
160+ if (res != FR_OK ) {
161+ * errcode = fresult_to_errno_table [res ];
162+ return MP_STREAM_ERROR ;
163+ }
164+ return 0 ;
165+
167166 } else {
168167 * errcode = MP_EINVAL ;
169168 return MP_STREAM_ERROR ;
@@ -243,7 +242,7 @@ STATIC const mp_rom_map_elem_t rawfile_locals_dict_table[] = {
243242 { MP_ROM_QSTR (MP_QSTR_readline ), MP_ROM_PTR (& mp_stream_unbuffered_readline_obj ) },
244243 { MP_ROM_QSTR (MP_QSTR_readlines ), MP_ROM_PTR (& mp_stream_unbuffered_readlines_obj ) },
245244 { MP_ROM_QSTR (MP_QSTR_write ), MP_ROM_PTR (& mp_stream_write_obj ) },
246- { MP_ROM_QSTR (MP_QSTR_flush ), MP_ROM_PTR (& file_obj_flush_obj ) },
245+ { MP_ROM_QSTR (MP_QSTR_flush ), MP_ROM_PTR (& mp_stream_flush_obj ) },
247246 { MP_ROM_QSTR (MP_QSTR_close ), MP_ROM_PTR (& file_obj_close_obj ) },
248247 { MP_ROM_QSTR (MP_QSTR_seek ), MP_ROM_PTR (& mp_stream_seek_obj ) },
249248 { MP_ROM_QSTR (MP_QSTR_tell ), MP_ROM_PTR (& mp_stream_tell_obj ) },
0 commit comments