From 1e8fbe1b0d2b0e85da5625180ddbd316fd1b246b Mon Sep 17 00:00:00 2001 From: Smallhacker Date: Sun, 13 Jan 2019 21:03:16 -0500 Subject: [PATCH] Added updating synchronization --- src/main/java/com/smallhacker/disbrowser/Service.kt | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/smallhacker/disbrowser/Service.kt b/src/main/java/com/smallhacker/disbrowser/Service.kt index 2ca404e..ffbe44a 100644 --- a/src/main/java/com/smallhacker/disbrowser/Service.kt +++ b/src/main/java/com/smallhacker/disbrowser/Service.kt @@ -8,6 +8,7 @@ import com.smallhacker.disbrowser.util.toUInt24 import kotlin.reflect.KMutableProperty1 private val RESET_VECTOR_LOCATION = address(0x00_FFFC) +private val UPDATE_MUTEX = Any() private val VECTORS = listOf( address(0x00_FFE4) to "COP", @@ -60,12 +61,14 @@ object Service { } fun updateMetadata(game: Game, address: SnesAddress, field: KMutableProperty1, value: String) { - if (value.isEmpty()) { - if (address in game.gameData) { - doUpdateMetadata(game, address, field, null) + synchronized(UPDATE_MUTEX) { + if (value.isEmpty()) { + if (address in game.gameData) { + doUpdateMetadata(game, address, field, null) + } + } else { + doUpdateMetadata(game, address, field, value) } - } else { - doUpdateMetadata(game, address, field, value) } }