From db92bb71d05caf674b527e6f479ddf276d1d7767 Mon Sep 17 00:00:00 2001 From: sergeyv Date: Thu, 2 Feb 2017 12:57:30 -0800 Subject: [PATCH] Check if layer is created in detachSurfaceTexture Test: manual bug:34937475 Change-Id: Iaab7a341917456b40427efd2746d33ddd88514d1 --- libs/hwui/DeferredLayerUpdater.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/libs/hwui/DeferredLayerUpdater.cpp b/libs/hwui/DeferredLayerUpdater.cpp index ee7764302c38f..415e850d0fe81 100644 --- a/libs/hwui/DeferredLayerUpdater.cpp +++ b/libs/hwui/DeferredLayerUpdater.cpp @@ -169,13 +169,15 @@ void DeferredLayerUpdater::updateLayer(bool forceFilter, GLenum renderTarget, void DeferredLayerUpdater::detachSurfaceTexture() { if (mSurfaceTexture.get()) { - if (mLayer->getApi() == Layer::Api::OpenGL) { + if (mLayerApi == Layer::Api::OpenGL) { status_t err = mSurfaceTexture->detachFromContext(); if (err != 0) { // TODO: Elevate to fatal exception ALOGE("Failed to detach SurfaceTexture from context %d", err); } - static_cast(mLayer)->clearTexture(); + if (mLayer) { + static_cast(mLayer)->clearTexture(); + } } mSurfaceTexture = nullptr; }