From 9866bfefed0a03c7aef8281287bb41989b423104 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Tue, 28 Jun 2022 11:56:41 +0200 Subject: [PATCH] Ensure clearWith lambda is deleting all the list item, else we will get an infinite loop. This specific error will help to figure out what is happening. --- .../matrix/android/sdk/internal/extensions/RealmExtensions.kt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/extensions/RealmExtensions.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/extensions/RealmExtensions.kt index 00cbe0aa85..9bc727541d 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/extensions/RealmExtensions.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/extensions/RealmExtensions.kt @@ -30,7 +30,11 @@ internal fun RealmObject.assertIsManaged() { */ internal fun RealmList.clearWith(delete: (T) -> Unit) { while (!isEmpty()) { + val previousSize = size first()?.let { delete.invoke(it) } + if (previousSize != size + 1) { + error("`clearWith` MUST delete all elements of the RealmList") + } } }