From 3699b516ea4bedc0e89c2879f6ceaf7cae1dd346 Mon Sep 17 00:00:00 2001 From: Jorge Martin Espinosa Date: Thu, 14 Sep 2023 08:30:41 +0200 Subject: [PATCH] Fix possible memory leak in `EventMessageMapper`. (#1326) --- .../timeline/item/event/EventMessageMapper.kt | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/timeline/item/event/EventMessageMapper.kt b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/timeline/item/event/EventMessageMapper.kt index 330a06da62..6e6efc67f5 100644 --- a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/timeline/item/event/EventMessageMapper.kt +++ b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/timeline/item/event/EventMessageMapper.kt @@ -46,22 +46,22 @@ class EventMessageMapper { fun map(message: Message): MessageContent = message.use { val type = it.msgtype().use(this::mapMessageType) - val inReplyToId = it.inReplyTo()?.eventId?.let(::EventId) - val inReplyToEvent: InReplyTo? = it.inReplyTo()?.event?.use { details -> - when (details) { + val inReplyToEvent: InReplyTo? = it.inReplyTo()?.use { details -> + val inReplyToId = EventId(details.eventId) + when (val event = details.event) { is RepliedToEventDetails.Ready -> { - val senderProfile = details.senderProfile as? ProfileDetails.Ready + val senderProfile = event.senderProfile as? ProfileDetails.Ready InReplyTo.Ready( - eventId = inReplyToId!!, - content = timelineEventContentMapper.map(details.content), - senderId = UserId(details.sender), + eventId = inReplyToId, + content = timelineEventContentMapper.map(event.content), + senderId = UserId(event.sender), senderDisplayName = senderProfile?.displayName, senderAvatarUrl = senderProfile?.avatarUrl, ) } is RepliedToEventDetails.Error -> InReplyTo.Error is RepliedToEventDetails.Pending -> InReplyTo.Pending - is RepliedToEventDetails.Unavailable -> InReplyTo.NotLoaded(inReplyToId!!) + is RepliedToEventDetails.Unavailable -> InReplyTo.NotLoaded(inReplyToId) } } MessageContent(