Skip to content

Commit

Permalink
Fix mypy issues
Browse files Browse the repository at this point in the history
  • Loading branch information
davfsa committed Jun 19, 2022
1 parent d3f35b4 commit aa9a194
Show file tree
Hide file tree
Showing 3 changed files with 4 additions and 11 deletions.
2 changes: 1 addition & 1 deletion changes/1192.bugfix.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
Properly garbage collect message references in the cache
- properly deserialize `PartialMessage.referenced_message` as the partial message it is
- Properly deserialize `PartialMessage.referenced_message` as a partial message
10 changes: 3 additions & 7 deletions hikari/impl/cache.py
Original file line number Diff line number Diff line change
Expand Up @@ -1564,15 +1564,11 @@ def _set_message(
referenced_message: typing.Optional[cache_utility.RefCell[cache_utility.MessageData]] = None
if message.referenced_message:
reference_id = message.referenced_message.id
referenced_message = self._message_entries.get(reference_id) or self._referenced_messages.get(reference_id)

if referenced_message := (
self._message_entries.get(reference_id) or self._referenced_messages.get(reference_id)
):
# We just update the already cached message to prevent losing the link between referenced messages,
# which could lead to a memory leak when garbage collecting
if referenced_message:
# Since the message is partial, if we don't have it cached, there is nothing we can do about it
referenced_message.object.update(message.referenced_message)
else:
referenced_message = self._set_message(message.referenced_message)

# Only increment ref counts if this wasn't previously cached.
if message.id not in self._referenced_messages and message.id not in self._message_entries:
Expand Down
3 changes: 0 additions & 3 deletions hikari/internal/cache.py
Original file line number Diff line number Diff line change
Expand Up @@ -723,9 +723,6 @@ def build_from_entity(
if not member and message.member:
member = RefCell(MemberData.build_from_entity(message.member))

if not referenced_message and message.referenced_message:
referenced_message = RefCell(MessageData.build_from_entity(message.referenced_message))

interaction = (
MessageInteractionData.build_from_entity(message.interaction, user=interaction_user)
if message.interaction
Expand Down

0 comments on commit aa9a194

Please sign in to comment.