Skip to content

Commit 9a28fd0

Browse files
jennantillajinliu9508
authored andcommitted
Add synchronized blocks to model get and set methods
1 parent 9285eac commit 9a28fd0

File tree

1 file changed

+20
-16
lines changed
  • OneSignalSDK/onesignal/core/src/main/java/com/onesignal/common/modeling

1 file changed

+20
-16
lines changed

OneSignalSDK/onesignal/core/src/main/java/com/onesignal/common/modeling/Model.kt

Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -436,19 +436,21 @@ open class Model(
436436
tag: String = ModelChangeTags.NORMAL,
437437
forceChange: Boolean = false,
438438
) {
439-
val oldValue = data[name]
439+
synchronized(data) {
440+
val oldValue = data[name]
440441

441-
if (oldValue == value && !forceChange) {
442-
return
443-
}
442+
if (oldValue == value && !forceChange) {
443+
return
444+
}
444445

445-
if (value != null) {
446-
data[name] = value
447-
} else if (data.containsKey(name)) {
448-
data.remove(name)
449-
}
446+
if (value != null) {
447+
data[name] = value
448+
} else if (data.containsKey(name)) {
449+
data.remove(name)
450+
}
450451

451-
notifyChanged(name, name, tag, oldValue, value)
452+
notifyChanged(name, name, tag, oldValue, value)
453+
}
452454
}
453455

454456
/**
@@ -634,12 +636,14 @@ open class Model(
634636
name: String,
635637
create: (() -> Any?)? = null,
636638
): Any? {
637-
return if (data.containsKey(name) || create == null) {
638-
data[name]
639-
} else {
640-
val defaultValue = create()
641-
data[name] = defaultValue as Any?
642-
defaultValue
639+
synchronized(data) {
640+
return if (data.containsKey(name) || create == null) {
641+
data[name]
642+
} else {
643+
val defaultValue = create()
644+
data[name] = defaultValue as Any?
645+
defaultValue
646+
}
643647
}
644648
}
645649

0 commit comments

Comments
 (0)