From 7a3be74350044db57fa7cc31e619f23534a57d13 Mon Sep 17 00:00:00 2001 From: iequidoo Date: Sun, 14 Apr 2024 23:18:24 -0300 Subject: [PATCH] fix(python): Use cached message object if dc_get_msg() returns NULL Particularly, in _msgstate() and download_state(). If the message has been trashed, dc_get_msg() returns NULL now. --- python/src/deltachat/message.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/python/src/deltachat/message.py b/python/src/deltachat/message.py index 3f813e52d..ce11f1ed4 100644 --- a/python/src/deltachat/message.py +++ b/python/src/deltachat/message.py @@ -364,6 +364,9 @@ class Message: else: # load message from db to get a fresh/current state dc_msg = ffi.gc(lib.dc_get_msg(self.account._dc_context, self.id), lib.dc_msg_unref) + # Message could be trashed, use the cached object if so. + if dc_msg == ffi.NULL: + dc_msg = self._dc_msg return lib.dc_msg_get_state(dc_msg) def is_in_fresh(self): @@ -484,6 +487,9 @@ class Message: # load message from db to get a fresh/current state dc_msg = ffi.gc(lib.dc_get_msg(self.account._dc_context, self.id), lib.dc_msg_unref) + # Message could be trashed, use the cached object if so. + if dc_msg == ffi.NULL: + dc_msg = self._dc_msg return lib.dc_msg_get_download_state(dc_msg) def download_full(self) -> None: