1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 07:37:46 +00:00

HexEditor: Propagate errors from HexDocumentFile::set_title()

This commit is contained in:
Lucas CHOLLET 2023-01-14 22:11:56 -05:00 committed by Andrew Kaster
parent a2dca2b762
commit 689b3c2c26
3 changed files with 6 additions and 5 deletions

View file

@ -73,7 +73,7 @@ ErrorOr<NonnullOwnPtr<HexDocumentFile>> HexDocumentFile::create(NonnullOwnPtr<Co
{ {
auto document = TRY(adopt_nonnull_own_or_enomem(new HexDocumentFile(move(file)))); auto document = TRY(adopt_nonnull_own_or_enomem(new HexDocumentFile(move(file))));
// FIXME: Remove this hackery // FIXME: Remove this hackery
document->set_file(move(document->m_file)); TRY(document->set_file(move(document->m_file)));
return document; return document;
} }
@ -150,7 +150,7 @@ void HexDocumentFile::clear_changes()
m_changes.clear(); m_changes.clear();
} }
void HexDocumentFile::set_file(NonnullOwnPtr<Core::Stream::File> file) ErrorOr<void> HexDocumentFile::set_file(NonnullOwnPtr<Core::Stream::File> file)
{ {
m_file = move(file); m_file = move(file);
@ -159,11 +159,12 @@ void HexDocumentFile::set_file(NonnullOwnPtr<Core::Stream::File> file)
else else
m_file_size = result.value(); m_file_size = result.value();
m_file->seek(0, SeekMode::SetPosition).release_value_but_fixme_should_propagate_errors(); TRY(m_file->seek(0, SeekMode::SetPosition));
clear_changes(); clear_changes();
// make sure the next get operation triggers a read // make sure the next get operation triggers a read
m_buffer_file_pos = m_file_size + 1; m_buffer_file_pos = m_file_size + 1;
return {};
} }
NonnullOwnPtr<Core::Stream::File> const& HexDocumentFile::file() const NonnullOwnPtr<Core::Stream::File> const& HexDocumentFile::file() const

View file

@ -64,7 +64,7 @@ public:
HexDocumentFile(HexDocumentFile&&) = default; HexDocumentFile(HexDocumentFile&&) = default;
HexDocumentFile(HexDocumentFile const&) = delete; HexDocumentFile(HexDocumentFile const&) = delete;
void set_file(NonnullOwnPtr<Core::Stream::File> file); ErrorOr<void> set_file(NonnullOwnPtr<Core::Stream::File> file);
NonnullOwnPtr<Core::Stream::File> const& file() const; NonnullOwnPtr<Core::Stream::File> const& file() const;
ErrorOr<void> write_to_file(); ErrorOr<void> write_to_file();
ErrorOr<void> write_to_file(Core::Stream::File& file); ErrorOr<void> write_to_file(Core::Stream::File& file);

View file

@ -141,7 +141,7 @@ ErrorOr<void> HexEditor::save_as(NonnullOwnPtr<Core::Stream::File> new_file)
if (m_document->type() == HexDocument::Type::File) { if (m_document->type() == HexDocument::Type::File) {
auto& file_document = static_cast<HexDocumentFile&>(*m_document); auto& file_document = static_cast<HexDocumentFile&>(*m_document);
TRY(file_document.write_to_file(*new_file)); TRY(file_document.write_to_file(*new_file));
file_document.set_file(move(new_file)); TRY(file_document.set_file(move(new_file)));
} else { } else {
auto& memory_document = static_cast<HexDocumentMemory&>(*m_document); auto& memory_document = static_cast<HexDocumentMemory&>(*m_document);
TRY(memory_document.write_to_file(*new_file)); TRY(memory_document.write_to_file(*new_file));