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; }