Browse Source

Merge pull request #1273 from vector-im/feature/fga/memory_leak_timeline_content

TimelineEvent : fix memory leak
pull/1280/head
ganfra 1 year ago committed by GitHub
parent
commit
bd8b2d0a68
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 15
      libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/timeline/item/event/TimelineEventContentMapper.kt

15
libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/timeline/item/event/TimelineEventContentMapper.kt

@ -34,14 +34,22 @@ import io.element.android.libraries.matrix.impl.media.map @@ -34,14 +34,22 @@ import io.element.android.libraries.matrix.impl.media.map
import io.element.android.libraries.matrix.impl.poll.map
import org.matrix.rustcomponents.sdk.TimelineItemContent
import org.matrix.rustcomponents.sdk.TimelineItemContentKind
import org.matrix.rustcomponents.sdk.use
import org.matrix.rustcomponents.sdk.EncryptedMessage as RustEncryptedMessage
import org.matrix.rustcomponents.sdk.MembershipChange as RustMembershipChange
import org.matrix.rustcomponents.sdk.OtherState as RustOtherState
class TimelineEventContentMapper(private val eventMessageMapper: EventMessageMapper = EventMessageMapper()) {
fun map(content: TimelineItemContent): EventContent = content.use {
when (val kind = it.kind()) {
fun map(content: TimelineItemContent): EventContent {
return content.use {
content.kind().use { kind ->
map(content, kind)
}
}
}
private fun map(content: TimelineItemContent, kind: TimelineItemContentKind) = when (kind) {
is TimelineItemContentKind.FailedToParseMessageLike -> {
FailedToParseMessageLikeContent(
eventType = kind.eventType,
@ -56,7 +64,7 @@ class TimelineEventContentMapper(private val eventMessageMapper: EventMessageMap @@ -56,7 +64,7 @@ class TimelineEventContentMapper(private val eventMessageMapper: EventMessageMap
)
}
TimelineItemContentKind.Message -> {
val message = it.asMessage()
val message = content.asMessage()
if (message == null) {
UnknownContent
} else {
@ -112,7 +120,6 @@ class TimelineEventContentMapper(private val eventMessageMapper: EventMessageMap @@ -112,7 +120,6 @@ class TimelineEventContentMapper(private val eventMessageMapper: EventMessageMap
}
else -> UnknownContent
}
}
}
private fun RustMembershipChange.map(): MembershipChange {

Loading…
Cancel
Save