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 @Volatile
var isDirty = true var isDirty = true
val lock = ReentrantLock() var lock: ReentrantLock? = null
inline fun drawLocked( inline fun drawLocked(
canvas: Canvas?, canvas: Canvas?,
@@ -21,8 +21,22 @@ class PictureMirror {
block: Canvas.() -> Unit block: Canvas.() -> Unit
) { ) {
if (atLeastApi23) { 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 picture = picture!!
val lock = lock!!
if (isDirty) { if (isDirty) {
if (!lock.tryLock()) return if (!lock.tryLock()) return
try { try {