From 73b44c94291c4d086477167a76fd7db239936c3b Mon Sep 17 00:00:00 2001 From: Vas Crabb Date: Sun, 6 Mar 2016 18:02:37 +1100 Subject: Turn core_file into a proper class that gets cleaned up safely using unique_ptr Subverted somewhat by chd_file class --- src/lib/formats/ioprocs.cpp | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) (limited to 'src/lib/formats/ioprocs.cpp') diff --git a/src/lib/formats/ioprocs.cpp b/src/lib/formats/ioprocs.cpp index 24f92060a82..9f00e3bb9d5 100644 --- a/src/lib/formats/ioprocs.cpp +++ b/src/lib/formats/ioprocs.cpp @@ -68,34 +68,33 @@ const struct io_procs stdio_ioprocs_noclose = static void corefile_closeproc(void *file) { - core_fclose((core_file*)file); + delete (util::core_file*)file; } static int corefile_seekproc(void *file, INT64 offset, int whence) { - return core_fseek((core_file*)file, (long) offset, whence); + return ((util::core_file*)file)->seek(offset, whence); } static size_t corefile_readproc(void *file, void *buffer, size_t length) { - return core_fread((core_file*)file, buffer, length); + return ((util::core_file*)file)->read(buffer, length); } static size_t corefile_writeproc(void *file, const void *buffer, size_t length) { - return core_fwrite((core_file*)file, buffer, length); + return ((util::core_file*)file)->write(buffer, length); } static UINT64 corefile_filesizeproc(void *file) { - long l, sz; - l = core_ftell((core_file*)file); - if (core_fseek((core_file*)file, 0, SEEK_END)) - return (size_t) -1; - sz = core_ftell((core_file*)file); - if (core_fseek((core_file*)file, l, SEEK_SET)) + const auto l = ((util::core_file*)file)->tell(); + if (((util::core_file*)file)->seek(0, SEEK_END)) return (size_t) -1; - return (size_t) sz; + const auto sz = ((util::core_file*)file)->tell(); + if (((util::core_file*)file)->seek(l, SEEK_SET)) + return UINT64(-1); + return UINT64(sz); } const struct io_procs corefile_ioprocs = -- cgit v1.2.3-70-g09d2