commit 9ff818b546a398052e1a9e1183d507713f433354
parent 759840bd10a9f468b15bf14149dbe4f5bbe76640
Author: rhunk <101876869+rhunk@users.noreply.github.com>
Date:   Sat,  3 Feb 2024 19:21:37 +0100

fix(core): database cache

Diffstat:
Mcore/src/main/kotlin/me/rhunk/snapenhance/core/database/DatabaseAccess.kt | 6+++---
1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/core/src/main/kotlin/me/rhunk/snapenhance/core/database/DatabaseAccess.kt b/core/src/main/kotlin/me/rhunk/snapenhance/core/database/DatabaseAccess.kt @@ -33,7 +33,8 @@ class DatabaseAccess( private val openedDatabases = mutableMapOf<DatabaseType, SQLiteDatabase>() private fun useDatabase(database: DatabaseType, writeMode: Boolean = false): SQLiteDatabase? { - if (openedDatabases.containsKey(database) && openedDatabases[database]?.isOpen == true) { + // only cache read-only databases + if (!writeMode && openedDatabases.containsKey(database) && openedDatabases[database]?.isOpen == true) { return openedDatabases[database] } @@ -54,12 +55,11 @@ class DatabaseAccess( ) }.onFailure { context.log.error("Failed to open database ${database.fileName}!", it) - }.getOrNull()?.also { + }.getOrNull()?.takeIf { !writeMode }?.also { openedDatabases[database] = it } } - private fun <T> SQLiteDatabase.performOperation(query: SQLiteDatabase.() -> T?): T? { return runCatching { if (NativeLib.initialized && openedDatabases[DatabaseType.ARROYO] == this) {