diff --git a/python/port/mod/ion/file.cpp b/python/port/mod/ion/file.cpp index a0a053b86..2efe8e091 100644 --- a/python/port/mod/ion/file.cpp +++ b/python/port/mod/ion/file.cpp @@ -464,15 +464,8 @@ STATIC mp_obj_t file_make_new(const mp_obj_type_t *type, size_t n_args, size_t n file->record = Ion::Storage::sharedStorage()->recordNamed(file_name); break; case APPEND: - file->position = 0; status = Ion::Storage::sharedStorage()->createRecordWithFullName(file_name, "", 0); switch (status) { - case Ion::Storage::Record::ErrorStatus::NameTaken: - // setValue messes with empty buffer, so we delete record and re-create it. - file->record = Ion::Storage::sharedStorage()->recordNamed(file_name); - file->record.destroy(); - - break; case Ion::Storage::Record::ErrorStatus::NotEnoughSpaceAvailable: mp_raise_OSError(28); break; @@ -480,6 +473,7 @@ STATIC mp_obj_t file_make_new(const mp_obj_type_t *type, size_t n_args, size_t n break; } file->record = Ion::Storage::sharedStorage()->recordNamed(file_name); + file->position = file->record.value().size; break; }