summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornicolasroard <nicolasroard@google.com>2013-10-08 19:00:21 -0700
committernicolasroard <nicolasroard@google.com>2013-10-08 19:00:21 -0700
commita164496b6e2239d0bda9de027f10587687067135 (patch)
tree0e62ab134dcaee9871b7ed27e955b77d34712f08
parent7943a83c2e2811fa427f99fd97e9a52832710d84 (diff)
downloadandroid_packages_apps_Gallery2-a164496b6e2239d0bda9de027f10587687067135.tar.gz
android_packages_apps_Gallery2-a164496b6e2239d0bda9de027f10587687067135.tar.bz2
android_packages_apps_Gallery2-a164496b6e2239d0bda9de027f10587687067135.zip
Fix triple buffer update bug
bug:11140550 Change-Id: I530bf8b071c7336eb7a20293d6c9c2f5360df47e
-rw-r--r--src/com/android/gallery3d/filtershow/pipeline/SharedPreset.java6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/com/android/gallery3d/filtershow/pipeline/SharedPreset.java b/src/com/android/gallery3d/filtershow/pipeline/SharedPreset.java
index 3f850fed2..334361263 100644
--- a/src/com/android/gallery3d/filtershow/pipeline/SharedPreset.java
+++ b/src/com/android/gallery3d/filtershow/pipeline/SharedPreset.java
@@ -21,6 +21,7 @@ public class SharedPreset {
private volatile ImagePreset mProducerPreset = null;
private volatile ImagePreset mConsumerPreset = null;
private volatile ImagePreset mIntermediatePreset = null;
+ private volatile boolean mHasNewContent = false;
public synchronized void enqueuePreset(ImagePreset preset) {
if (mProducerPreset == null || (!mProducerPreset.same(preset))) {
@@ -31,12 +32,17 @@ public class SharedPreset {
ImagePreset temp = mIntermediatePreset;
mIntermediatePreset = mProducerPreset;
mProducerPreset = temp;
+ mHasNewContent = true;
}
public synchronized ImagePreset dequeuePreset() {
+ if (!mHasNewContent) {
+ return mConsumerPreset;
+ }
ImagePreset temp = mConsumerPreset;
mConsumerPreset = mIntermediatePreset;
mIntermediatePreset = temp;
+ mHasNewContent = false;
return mConsumerPreset;
}
}