summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRicardo Cerqueira <cyanogenmod@cerqueira.org>2014-03-04 13:02:15 +0000
committerMichael Bestas <mikeioannina@gmail.com>2015-01-09 07:04:38 +0200
commite43e756cf359139d2e14ab5eb691f39f336db1d5 (patch)
treecf33c0dc746068e44839eb1bc80cf7e28feed6b9
parentbb0e3b5d9ebe4edd18cc13f065fb095905b85c32 (diff)
downloadandroid_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.java6
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();