This commit is contained in:
Horis
2024-02-15 16:39:56 +08:00
parent 7e8e65dcbd
commit 9d4bcbf091
@@ -12,7 +12,7 @@ class PictureMirror {
@Volatile
var isDirty = true
val lock = ReentrantLock()
var lock: ReentrantLock? = null
inline fun drawLocked(
canvas: Canvas?,
@@ -21,8 +21,22 @@ class PictureMirror {
block: Canvas.() -> Unit
) {
if (atLeastApi23) {
if (picture == null) picture = Picture()
if (picture == null) {
synchronized(this) {
if (picture == null) {
picture = Picture()
}
}
}
if (lock == null) {
synchronized(this) {
if (lock == null) {
lock = ReentrantLock()
}
}
}
val picture = picture!!
val lock = lock!!
if (isDirty) {
if (!lock.tryLock()) return
try {