diff options
author | Kali Kaneko <kali@leap.se> | 2014-02-05 12:37:50 -0400 |
---|---|---|
committer | Kali Kaneko <kali@leap.se> | 2014-02-05 14:01:41 -0400 |
commit | 3f9c3ab22523c553dc677d5273dc8d01394d74f7 (patch) | |
tree | 6bac7814c6999180dfaa313d683a554e9e65906d /src/leap | |
parent | 423624e5f2c4d3f8cfe8f15f4d6649ed3eea11dc (diff) |
fix memoized call returning always None
Diffstat (limited to 'src/leap')
-rw-r--r-- | src/leap/mail/imap/messageparts.py | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/src/leap/mail/imap/messageparts.py b/src/leap/mail/imap/messageparts.py index b07681b..2d9b3a2 100644 --- a/src/leap/mail/imap/messageparts.py +++ b/src/leap/mail/imap/messageparts.py @@ -397,7 +397,9 @@ class MessagePart(object): logger.warning("Could not find phash for this subpart!") payload = "" else: - payload = self._get_payload_from_document(phash) + payload = self._get_payload_from_document_memoized(phash) + if payload is None: + payload = self._get_payload_from_document(phash) else: logger.warning("Message with no part_map!") @@ -424,13 +426,24 @@ class MessagePart(object): # TODO should memory-bound this memoize!!! @memoized_method + def _get_payload_from_document_memoized(self, phash): + """ + Memoized method call around the regular method, to be able + to call the non-memoized method in case we got a None. + + :param phash: the payload hash to retrieve by. + :type phash: str or unicode + :rtype: str or unicode or None + """ + return self._get_payload_from_document(phash) + def _get_payload_from_document(self, phash): """ Return the message payload from the content document. :param phash: the payload hash to retrieve by. :type phash: str or unicode - :rtype: str or unicode + :rtype: str or unicode or None """ cdocs = self._soledad.get_from_index( fields.TYPE_P_HASH_IDX, |