From bc94848ce73ba9a23be2f7f3a12c4a7404ae3eb2 Mon Sep 17 00:00:00 2001 From: Ruben Brunk Date: Wed, 27 Mar 2013 11:19:23 -0700 Subject: [PATCH] Fixed renderscript crashes. Bug: 8478659 Bug: 8459181 Bug: 8450339 Bug: 8457323 createFilter() initializes a ton of parameters in the RenderScript filters. Using stale parameters from a previous call to createFilter() causes segfaults. Change-Id: Id54b956b7fe83be5089b1d47c3bedcca66237ddf --- .../android/gallery3d/filtershow/filters/ImageFilterRS.java | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/src/com/android/gallery3d/filtershow/filters/ImageFilterRS.java b/src/com/android/gallery3d/filtershow/filters/ImageFilterRS.java index 56e848aa7..cff071142 100644 --- a/src/com/android/gallery3d/filtershow/filters/ImageFilterRS.java +++ b/src/com/android/gallery3d/filtershow/filters/ImageFilterRS.java @@ -70,15 +70,12 @@ public abstract class ImageFilterRS extends ImageFilter { if (DEBUG) { Log.v(LOGTAG, "apply filter " + getName() + " in pipeline " + pipeline.getName()); } - boolean needsUpdate = pipeline.prepareRenderscriptAllocations(bitmap); - if (needsUpdate || !isResourcesLoaded()) { - // the allocations changed size - freeResources(); - createFilter(sResources, scaleFactor, quality); - setResourcesLoaded(true); - } + pipeline.prepareRenderscriptAllocations(bitmap); + createFilter(sResources, scaleFactor, quality); + setResourcesLoaded(true); runFilter(); update(bitmap); + freeResources(); if (DEBUG) { Log.v(LOGTAG, "DONE apply filter " + getName() + " in pipeline " + pipeline.getName()); } -- 2.11.0