From d87286fe5446e3d797290fa48b2369c1d0e2144b Mon Sep 17 00:00:00 2001 From: Ricardo Cerqueira Date: Tue, 4 Mar 2014 13:02:15 +0000 Subject: 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 --- .../android/gallery3d/filtershow/pipeline/UpdatePreviewTask.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'src') 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(); -- cgit v1.2.3