diff options
Diffstat (limited to 'lib/sqfs')
-rw-r--r-- | lib/sqfs/src/win32/io_file.c | 15 | ||||
-rw-r--r-- | lib/sqfs/src/win32/istream.c | 20 | ||||
-rw-r--r-- | lib/sqfs/src/win32/ostream.c | 12 |
3 files changed, 25 insertions, 22 deletions
diff --git a/lib/sqfs/src/win32/io_file.c b/lib/sqfs/src/win32/io_file.c index dbd80d8..4d76b94 100644 --- a/lib/sqfs/src/win32/io_file.c +++ b/lib/sqfs/src/win32/io_file.c @@ -60,7 +60,9 @@ static sqfs_object_t *stdio_copy(const sqfs_object_t *base) 0, FALSE, DUPLICATE_SAME_ACCESS); if (!ret) { + os_error_t err = get_os_error_state(); free(copy); + set_os_error_state(err); return NULL; } @@ -163,7 +165,8 @@ int sqfs_open_native_file(sqfs_file_handle_t *out, const char *filename, { int access_flags, creation_mode, share_mode; WCHAR *wpath = NULL; - DWORD length, err; + os_error_t err; + DWORD length; *out = INVALID_HANDLE_VALUE; @@ -209,9 +212,9 @@ int sqfs_open_native_file(sqfs_file_handle_t *out, const char *filename, creation_mode, FILE_ATTRIBUTE_NORMAL, NULL); - err = GetLastError(); + err = get_os_error_state(); free(wpath); - SetLastError(err); + set_os_error_state(err); } return (*out == INVALID_HANDLE_VALUE) ? SQFS_ERROR_IO : 0; @@ -223,7 +226,7 @@ sqfs_file_t *sqfs_open_file(const char *filename, sqfs_u32 flags) size_t namelen, total; LARGE_INTEGER size; sqfs_file_t *base; - DWORD err; + os_error_t err; namelen = strlen(filename); total = sizeof(*file) + 1; @@ -259,10 +262,10 @@ sqfs_file_t *sqfs_open_file(const char *filename, sqfs_u32 flags) base->get_filename = stdio_get_filename; return base; fail: - err = GetLastError(); + err = get_os_error_state(); if (file->fd != INVALID_HANDLE_VALUE) CloseHandle(file->fd); free(file); - SetLastError(err); + set_os_error_state(err); return NULL; } diff --git a/lib/sqfs/src/win32/istream.c b/lib/sqfs/src/win32/istream.c index 3f7eb83..aeb3352 100644 --- a/lib/sqfs/src/win32/istream.c +++ b/lib/sqfs/src/win32/istream.c @@ -49,15 +49,15 @@ static int precache(sqfs_istream_t *strm) if (!ReadFile(file->hnd, file->buffer + file->buffer_used, diff, &actual, NULL)) { - DWORD error = GetLastError(); + os_error_t error = get_os_error_state(); - if (error == ERROR_HANDLE_EOF || - error == ERROR_BROKEN_PIPE) { + if (error.w32_errno == ERROR_HANDLE_EOF || + error.w32_errno == ERROR_BROKEN_PIPE) { file->eof = true; break; } - SetLastError(error); + set_os_error_state(error); return SQFS_ERROR_IO; } @@ -136,9 +136,9 @@ int sqfs_istream_open_handle(sqfs_istream_t **out, const char *path, file->path = strdup(path); if (file->path == NULL) { - DWORD temp = GetLastError(); + os_error_t err = get_os_error_state(); free(file); - SetLastError(temp); + set_os_error_state(err); return SQFS_ERROR_ALLOC; } @@ -146,10 +146,10 @@ int sqfs_istream_open_handle(sqfs_istream_t **out, const char *path, GetCurrentProcess(), &file->hnd, 0, FALSE, DUPLICATE_SAME_ACCESS); if (!ret) { - DWORD temp = GetLastError(); + os_error_t err = get_os_error_state(); free(file->path); free(file); - SetLastError(temp); + set_os_error_state(err); return SQFS_ERROR_IO; } @@ -180,9 +180,9 @@ int sqfs_istream_open_file(sqfs_istream_t **out, const char *path, ret = sqfs_istream_open_handle(out, path, hnd, flags); if (ret) { - DWORD temp = GetLastError(); + os_error_t err = get_os_error_state(); CloseHandle(hnd); - SetLastError(temp); + set_os_error_state(err); return ret; } diff --git a/lib/sqfs/src/win32/ostream.c b/lib/sqfs/src/win32/ostream.c index 3ebeb8b..2f85c29 100644 --- a/lib/sqfs/src/win32/ostream.c +++ b/lib/sqfs/src/win32/ostream.c @@ -59,9 +59,9 @@ static int realize_sparse(file_ostream_t *file) ret = write_data(file, buffer, diff); if (ret) { - DWORD temp = GetLastError(); + os_error_t err = get_os_error_state(); free(buffer); - SetLastError(temp); + set_os_error_state(err); return ret; } @@ -157,10 +157,10 @@ int sqfs_ostream_open_handle(sqfs_ostream_t **out, const char *path, GetCurrentProcess(), &file->hnd, 0, FALSE, DUPLICATE_SAME_ACCESS); if (!ret) { - DWORD temp = GetLastError(); + os_error_t err = get_os_error_state(); free(file->path); free(file); - SetLastError(temp); + set_os_error_state(err); return SQFS_ERROR_IO; } @@ -191,9 +191,9 @@ int sqfs_ostream_open_file(sqfs_ostream_t **out, const char *path, ret = sqfs_ostream_open_handle(out, path, hnd, flags); if (ret) { - DWORD temp = GetLastError(); + os_error_t err = get_os_error_state(); CloseHandle(hnd); - SetLastError(temp); + set_os_error_state(err); return SQFS_ERROR_IO; } |