diff options
| author | nicolasroard <nicolasroard@google.com> | 2013-10-08 19:00:21 -0700 |
|---|---|---|
| committer | nicolasroard <nicolasroard@google.com> | 2013-10-08 19:00:21 -0700 |
| commit | a164496b6e2239d0bda9de027f10587687067135 (patch) | |
| tree | 0e62ab134dcaee9871b7ed27e955b77d34712f08 | |
| parent | 7943a83c2e2811fa427f99fd97e9a52832710d84 (diff) | |
| download | android_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.java | 6 |
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; } } |
