Skip to content

Commit

Permalink
fix: Ensure realm objects are frozen
Browse files Browse the repository at this point in the history
  • Loading branch information
valentinperignon committed Dec 5, 2023
1 parent 0373497 commit 3754f4e
Showing 1 changed file with 8 additions and 3 deletions.
11 changes: 8 additions & 3 deletions MailCore/Cache/DraftContentManager.swift
Original file line number Diff line number Diff line change
Expand Up @@ -138,8 +138,8 @@ public class DraftContentManager: ObservableObject {
}

public func replaceContent(subject: String? = nil, body: String) async {
guard let liveDraft = try? getLiveDraft() else { return }
guard let parsedMessage = try? await SwiftSoup.parse(liveDraft.body) else { return }
guard let draft = try? getFrozenDraft() else { return }
guard let parsedMessage = try? await SwiftSoup.parse(draft.body) else { return }

var extractedElements = ""
for itemToExtract in Draft.appendedHTMLElements {
Expand All @@ -149,6 +149,7 @@ public class DraftContentManager: ObservableObject {
}

let realm = mailboxManager.getRealm()
guard let liveDraft = draft.thaw() else { return }
try? realm.write {
if let subject {
liveDraft.subject = subject
Expand All @@ -166,6 +167,10 @@ public class DraftContentManager: ObservableObject {
return liveDraft
}

private func getFrozenDraft() throws -> Draft {
return try getLiveDraft().freezeIfNeeded()
}

private func writeCompleteDraft(
completeBody: String,
signature: Signature,
Expand Down Expand Up @@ -313,7 +318,7 @@ public class DraftContentManager: ObservableObject {

private func loadReplyingMessageAndFormat(_ message: Message, replyMode: ReplyMode) async throws -> String {
let replyingMessage = try await loadReplyingMessage(message, replyMode: replyMode)
return await Draft.replyingBody(message: replyingMessage, replyMode: replyMode)
return await Draft.replyingBody(message: replyingMessage.freezeIfNeeded(), replyMode: replyMode)
}

private func loadReplyingAttachments(message: Message, replyMode: ReplyMode) async throws -> [Attachment] {
Expand Down

0 comments on commit 3754f4e

Please sign in to comment.