Wrap freeDialogs call inside a finally block

For instance, LocalDateTime.parse could fail,
and then the dialogs would be leaked.
master
Lonami Exo 2022-10-23 20:27:15 +02:00
parent 442b019134
commit 07d0e5e505
1 changed files with 25 additions and 22 deletions

View File

@ -16,6 +16,7 @@ class NativeDialogRepository : DialogRepository {
val dialogs = mutableListOf<Dialog>() val dialogs = mutableListOf<Dialog>()
val dialogPtr = Native.getDialogs() val dialogPtr = Native.getDialogs()
try {
val dialogCount = Native.dialogCount(dialogPtr) val dialogCount = Native.dialogCount(dialogPtr)
for (i in 0 until dialogCount) { for (i in 0 until dialogCount) {
dialogs.add( dialogs.add(
@ -40,7 +41,9 @@ class NativeDialogRepository : DialogRepository {
) )
) )
} }
} finally {
Native.freeDialogs(dialogPtr) Native.freeDialogs(dialogPtr)
}
return dialogs return dialogs
} }