diff options
author | 2021-10-05 03:34:45 +1100 | |
---|---|---|
committer | 2021-10-05 03:34:45 +1100 | |
commit | aeb9eae87469e67bc6a91caf3840c34c11d959fc (patch) | |
tree | 45bffedf374dbce47caca633ad7bda547592e6c9 /src/emu/save.cpp | |
parent | 33723892a3f06e678d817b36aef84364c32848ec (diff) |
util: Further API cleanups: (#8661)
* Turned `core_file` into an implementation of `random_read_write`.
* Turned PNG errors into a standard error category.
* Added a helper for generating what look like derived classes on-the-fly.
Diffstat (limited to 'src/emu/save.cpp')
-rw-r--r-- | src/emu/save.cpp | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/src/emu/save.cpp b/src/emu/save.cpp index 120fa883655..a27a98ee23c 100644 --- a/src/emu/save.cpp +++ b/src/emu/save.cpp @@ -272,12 +272,14 @@ save_error save_manager::write_file(emu_file &file) { if (file.seek(0, SEEK_SET)) return false; - writer = util::core_file_read_write(file); - return bool(writer); + util::core_file::ptr proxy; + std::error_condition filerr = util::core_file::open_proxy(file, proxy); + writer = std::move(proxy); + return !filerr && writer; }, [&file, &writer] () { - writer = util::zlib_write(util::core_file_read_write(file), 6, 16384); + writer = util::zlib_write(file, 6, 16384); return bool(writer); }); return (STATERR_NONE != err) ? err : writer->finalize() ? STATERR_WRITE_ERROR : STATERR_NONE; @@ -303,12 +305,14 @@ save_error save_manager::read_file(emu_file &file) { if (file.seek(0, SEEK_SET)) return false; - reader = util::core_file_read(file); - return bool(reader); + util::core_file::ptr proxy; + std::error_condition filerr = util::core_file::open_proxy(file, proxy); + reader = std::move(proxy); + return !filerr && reader; }, [&file, &reader] () { - reader = util::zlib_read(util::core_file_read(file), 16384); + reader = util::zlib_read(file, 16384); return bool(reader); }); } |