Skip to content

Commit b1d8404

Browse files
LucasCholletADKaster
authored andcommitted
HexEditor: Use the constructor pattern
1 parent a621b5f commit b1d8404

File tree

3 files changed

+13
-4
lines changed

3 files changed

+13
-4
lines changed

Userland/Applications/HexEditor/HexDocument.cpp

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,10 +70,18 @@ bool HexDocumentMemory::write_to_file(NonnullRefPtr<Core::File> file)
7070
return true;
7171
}
7272

73+
ErrorOr<NonnullOwnPtr<HexDocumentFile>> HexDocumentFile::create(NonnullRefPtr<Core::File> file)
74+
{
75+
auto document = TRY(adopt_nonnull_own_or_enomem(new HexDocumentFile(move(file))));
76+
// FIXME: Remove this hackery
77+
document->set_file(move(document->m_file));
78+
79+
return document;
80+
}
81+
7382
HexDocumentFile::HexDocumentFile(NonnullRefPtr<Core::File> file)
7483
: m_file(file)
7584
{
76-
set_file(file);
7785
}
7886

7987
void HexDocumentFile::write_to_file()

Userland/Applications/HexEditor/HexDocument.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ class HexDocumentMemory final : public HexDocument {
5858

5959
class HexDocumentFile final : public HexDocument {
6060
public:
61-
explicit HexDocumentFile(NonnullRefPtr<Core::File> file);
61+
static ErrorOr<NonnullOwnPtr<HexDocumentFile>> create(NonnullRefPtr<Core::File> file);
6262
virtual ~HexDocumentFile() = default;
6363

6464
HexDocumentFile(HexDocumentFile&&) = default;
@@ -75,6 +75,7 @@ class HexDocumentFile final : public HexDocument {
7575
void clear_changes() override;
7676

7777
private:
78+
explicit HexDocumentFile(NonnullRefPtr<Core::File> file);
7879
void ensure_position_in_buffer(size_t position);
7980

8081
NonnullRefPtr<Core::File> m_file;

Userland/Applications/HexEditor/HexEditor.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ ErrorOr<void> HexEditor::open_new_file(size_t size)
6565

6666
void HexEditor::open_file(NonnullRefPtr<Core::File> file)
6767
{
68-
m_document = make<HexDocumentFile>(file);
68+
m_document = HexDocumentFile::create(move(file)).release_value_but_fixme_should_propagate_errors();
6969
set_content_length(m_document->size());
7070
m_position = 0;
7171
m_cursor_at_low_nibble = false;
@@ -146,7 +146,7 @@ bool HexEditor::save_as(NonnullRefPtr<Core::File> new_file)
146146
auto& memory_document = static_cast<HexDocumentMemory&>(*m_document);
147147
if (!memory_document.write_to_file(new_file))
148148
return false;
149-
m_document = make<HexDocumentFile>(new_file);
149+
m_document = HexDocumentFile::create(move(new_file)).release_value_but_fixme_should_propagate_errors();
150150
}
151151

152152
update();

0 commit comments

Comments
 (0)