优化
This commit is contained in:
@@ -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 {
|
||||||
|
|||||||
Reference in New Issue
Block a user