From 866ed817d0adf5b874eff277b4a4d2bcc6f61830 Mon Sep 17 00:00:00 2001 From: Chet Haase Date: Tue, 13 Mar 2012 11:13:13 -0700 Subject: [PATCH] Fix garbage deref in DisplayList structures Issue #6158892: Device runtime restarts frequently Change-Id: I4e6afaaf9ac66d6846caf0ed82ea67163d8b15c2 --- libs/hwui/DisplayListRenderer.cpp | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/libs/hwui/DisplayListRenderer.cpp b/libs/hwui/DisplayListRenderer.cpp index 24f4f1cf84b65..2ba87c09d080c 100644 --- a/libs/hwui/DisplayListRenderer.cpp +++ b/libs/hwui/DisplayListRenderer.cpp @@ -140,17 +140,19 @@ void DisplayList::destroyDisplayListDeferred(DisplayList* displayList) { void DisplayList::clearResources() { sk_free((void*) mReader.base()); - if (mTransformMatrix) { - delete mTransformMatrix; - mTransformMatrix = NULL; - } - if (mTransformCamera) { - delete mTransformCamera; - mTransformCamera = NULL; - } - if (mTransformMatrix3D) { - delete mTransformMatrix3D; - mTransformMatrix3D = NULL; + if (USE_DISPLAY_LIST_PROPERTIES) { + if (mTransformMatrix) { + delete mTransformMatrix; + mTransformMatrix = NULL; + } + if (mTransformCamera) { + delete mTransformCamera; + mTransformCamera = NULL; + } + if (mTransformMatrix3D) { + delete mTransformMatrix3D; + mTransformMatrix3D = NULL; + } } Caches& caches = Caches::getInstance();