diff options
author | Ricardo Cerqueira <cyanogenmod@cerqueira.org> | 2014-03-04 13:02:15 +0000 |
---|---|---|
committer | Michael Bestas <mikeioannina@gmail.com> | 2015-01-09 07:04:38 +0200 |
commit | e43e756cf359139d2e14ab5eb691f39f336db1d5 (patch) | |
tree | cf33c0dc746068e44839eb1bc80cf7e28feed6b9 | |
parent | bb0e3b5d9ebe4edd18cc13f065fb095905b85c32 (diff) | |
download | android_packages_apps_Gallery2-e43e756cf359139d2e14ab5eb691f39f336db1d5.tar.gz android_packages_apps_Gallery2-e43e756cf359139d2e14ab5eb691f39f336db1d5.tar.bz2 android_packages_apps_Gallery2-e43e756cf359139d2e14ab5eb691f39f336db1d5.zip |
Camera: Fix out-of-order operations while setting up the editor
The buffer's producer is created by the cache pipeline generation,
so verifying that it isn't null before calling compute() is wrong.
This breaks a few devices, and should actually break them all, so
fix it; only check if getProducer() is valid after running setProducer()
Change-Id: I9d7d03fa9c9eb7063daef2ae28a78cd70b7a5ef3
-rw-r--r-- | src/com/android/gallery3d/filtershow/pipeline/UpdatePreviewTask.java | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/com/android/gallery3d/filtershow/pipeline/UpdatePreviewTask.java b/src/com/android/gallery3d/filtershow/pipeline/UpdatePreviewTask.java index 5375c2598..a55abca3d 100644 --- a/src/com/android/gallery3d/filtershow/pipeline/UpdatePreviewTask.java +++ b/src/com/android/gallery3d/filtershow/pipeline/UpdatePreviewTask.java @@ -57,9 +57,11 @@ public class UpdatePreviewTask extends ProcessingTask { SharedBuffer buffer = MasterImage.getImage().getPreviewBuffer(); SharedPreset preset = MasterImage.getImage().getPreviewPreset(); ImagePreset renderingPreset = preset.dequeuePreset(); - if ( (buffer != null) && (renderingPreset != null) && - (buffer.getProducer() != null)) { + if ( (buffer != null) && (renderingPreset != null)) { mPreviewPipeline.compute(buffer, renderingPreset, 0); + if ( buffer.getProducer() == null) { + return null; + } // set the preset we used in the buffer for later inspection UI-side buffer.getProducer().setPreset(renderingPreset); buffer.getProducer().sync(); |