From 13f4890c38c9f7f7d6e936d56de550a36916eec2 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Fri, 20 Aug 2021 11:16:42 +0200 Subject: [PATCH] LibCore: Make Core::File::open() return OSError in case of failure --- Tests/LibCore/TestLibCoreIODevice.cpp | 2 +- Tests/LibWasm/test-wasm.cpp | 2 +- Userland/Applications/PixelPaint/Image.cpp | 4 ++-- Userland/Applications/PixelPaint/PaletteWidget.cpp | 2 +- Userland/Applications/Spreadsheet/Workbook.cpp | 2 +- Userland/Libraries/LibCore/File.cpp | 6 +++--- Userland/Libraries/LibCore/File.h | 4 ++-- Userland/Libraries/LibCore/FileStream.h | 8 ++++---- 8 files changed, 15 insertions(+), 15 deletions(-) diff --git a/Tests/LibCore/TestLibCoreIODevice.cpp b/Tests/LibCore/TestLibCoreIODevice.cpp index 72ab79f93c..1148170f3f 100644 --- a/Tests/LibCore/TestLibCoreIODevice.cpp +++ b/Tests/LibCore/TestLibCoreIODevice.cpp @@ -13,7 +13,7 @@ TEST_CASE(file_readline) auto path = "long_lines.txt"; auto file_or_error = Core::File::open(path, Core::OpenMode::ReadOnly); if (file_or_error.is_error()) { - warnln("Failed to open {}: {}", path, strerror(errno)); + warnln("Failed to open {}: {}", path, file_or_error.error()); VERIFY_NOT_REACHED(); } auto file = file_or_error.release_value(); diff --git a/Tests/LibWasm/test-wasm.cpp b/Tests/LibWasm/test-wasm.cpp index d0b16d7d70..4fe48f67e9 100644 --- a/Tests/LibWasm/test-wasm.cpp +++ b/Tests/LibWasm/test-wasm.cpp @@ -18,7 +18,7 @@ TESTJS_GLOBAL_FUNCTION(read_binary_wasm_file, readBinaryWasmFile) return {}; auto file = Core::File::open(filename, Core::OpenMode::ReadOnly); if (file.is_error()) { - vm.throw_exception(global_object, file.error()); + vm.throw_exception(global_object, file.error().string()); return {}; } auto contents = file.value()->read_all(); diff --git a/Userland/Applications/PixelPaint/Image.cpp b/Userland/Applications/PixelPaint/Image.cpp index 9a77c9fe51..6f3676fa9a 100644 --- a/Userland/Applications/PixelPaint/Image.cpp +++ b/Userland/Applications/PixelPaint/Image.cpp @@ -98,7 +98,7 @@ Result, String> Image::try_create_from_pixel_paint_path(Str { auto file_or_error = Core::File::open(file_path, Core::OpenMode::ReadOnly); if (file_or_error.is_error()) - return file_or_error.error(); + return String { file_or_error.error().string() }; return try_create_from_pixel_paint_file(*file_or_error.value(), file_path); } @@ -256,7 +256,7 @@ Result Image::write_to_file(const String& file_path) const auto file_or_error = Core::File::open(file_path, (Core::OpenMode)(Core::OpenMode::WriteOnly | Core::OpenMode::Truncate)); if (file_or_error.is_error()) - return file_or_error.error(); + return String { file_or_error.error().string() }; if (!file_or_error.value()->write(builder.string_view())) return String { file_or_error.value()->error_string() }; diff --git a/Userland/Applications/PixelPaint/PaletteWidget.cpp b/Userland/Applications/PixelPaint/PaletteWidget.cpp index d42ca56e75..b06adfd9a0 100644 --- a/Userland/Applications/PixelPaint/PaletteWidget.cpp +++ b/Userland/Applications/PixelPaint/PaletteWidget.cpp @@ -232,7 +232,7 @@ Result, String> PaletteWidget::load_palette_path(String const& fil { auto file_or_error = Core::File::open(file_path, Core::OpenMode::ReadOnly); if (file_or_error.is_error()) - return file_or_error.error(); + return String { file_or_error.error().string() }; auto& file = *file_or_error.value(); return load_palette_file(file); diff --git a/Userland/Applications/Spreadsheet/Workbook.cpp b/Userland/Applications/Spreadsheet/Workbook.cpp index 6df5f71cbb..40c94e12fe 100644 --- a/Userland/Applications/Spreadsheet/Workbook.cpp +++ b/Userland/Applications/Spreadsheet/Workbook.cpp @@ -51,7 +51,7 @@ Result Workbook::load(const StringView& filename) sb.append("Failed to open "); sb.append(filename); sb.append(" for reading. Error: "); - sb.append(file_or_error.error()); + sb.append(file_or_error.error().string()); return sb.to_string(); } diff --git a/Userland/Libraries/LibCore/File.cpp b/Userland/Libraries/LibCore/File.cpp index 24f707d07c..a1d67291b1 100644 --- a/Userland/Libraries/LibCore/File.cpp +++ b/Userland/Libraries/LibCore/File.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018-2020, Andreas Kling + * Copyright (c) 2018-2021, Andreas Kling * * SPDX-License-Identifier: BSD-2-Clause */ @@ -27,11 +27,11 @@ namespace Core { -Result, String> File::open(String filename, OpenMode mode, mode_t permissions) +Result, OSError> File::open(String filename, OpenMode mode, mode_t permissions) { auto file = File::construct(move(filename)); if (!file->open_impl(mode, permissions)) - return String(file->error_string()); + return OSError(file->error()); return file; } diff --git a/Userland/Libraries/LibCore/File.h b/Userland/Libraries/LibCore/File.h index c430d1eade..30be3aa333 100644 --- a/Userland/Libraries/LibCore/File.h +++ b/Userland/Libraries/LibCore/File.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018-2020, Andreas Kling + * Copyright (c) 2018-2021, Andreas Kling * * SPDX-License-Identifier: BSD-2-Clause */ @@ -19,7 +19,7 @@ class File final : public IODevice { public: virtual ~File() override; - static Result, String> open(String filename, OpenMode, mode_t = 0644); + static Result, OSError> open(String filename, OpenMode, mode_t = 0644); String filename() const { return m_filename; } void set_filename(const String filename) { m_filename = move(filename); } diff --git a/Userland/Libraries/LibCore/FileStream.h b/Userland/Libraries/LibCore/FileStream.h index 7d8dd164b7..4069383b37 100644 --- a/Userland/Libraries/LibCore/FileStream.h +++ b/Userland/Libraries/LibCore/FileStream.h @@ -20,7 +20,7 @@ public: { } - static Result open(StringView filename, OpenMode mode = OpenMode::ReadOnly, mode_t permissions = 0644) + static Result open(StringView filename, OpenMode mode = OpenMode::ReadOnly, mode_t permissions = 0644) { VERIFY(has_flag(mode, OpenMode::ReadOnly)); @@ -32,7 +32,7 @@ public: return InputFileStream { file_result.value() }; } - static Result, String> open_buffered(StringView filename, OpenMode mode = OpenMode::ReadOnly, mode_t permissions = 0644) + static Result, OSError> open_buffered(StringView filename, OpenMode mode = OpenMode::ReadOnly, mode_t permissions = 0644) { VERIFY(has_flag(mode, OpenMode::ReadOnly)); @@ -89,7 +89,7 @@ public: { } - static Result open(StringView filename, OpenMode mode = OpenMode::WriteOnly, mode_t permissions = 0644) + static Result open(StringView filename, OpenMode mode = OpenMode::WriteOnly, mode_t permissions = 0644) { VERIFY(has_flag(mode, OpenMode::WriteOnly)); @@ -101,7 +101,7 @@ public: return OutputFileStream { file_result.value() }; } - static Result, String> open_buffered(StringView filename, OpenMode mode = OpenMode::WriteOnly, mode_t permissions = 0644) + static Result, OSError> open_buffered(StringView filename, OpenMode mode = OpenMode::WriteOnly, mode_t permissions = 0644) { VERIFY(has_flag(mode, OpenMode::WriteOnly));