summaryrefslogtreecommitdiffstats
path: root/src/emu/save.cpp
diff options
context:
space:
mode:
author Vas Crabb <cuavas@users.noreply.github.com>2021-10-05 03:34:45 +1100
committer GitHub <noreply@github.com>2021-10-05 03:34:45 +1100
commitaeb9eae87469e67bc6a91caf3840c34c11d959fc (patch)
tree45bffedf374dbce47caca633ad7bda547592e6c9 /src/emu/save.cpp
parent33723892a3f06e678d817b36aef84364c32848ec (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.cpp16
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);
});
}