From 7827e2eb2fdac7ffe3271f74fa3fbec372a9a30e Mon Sep 17 00:00:00 2001 From: Heeyong Song Date: Wed, 9 Aug 2017 21:53:29 +0900 Subject: [PATCH] Fix egl surface crash Change-Id: I6fea3d23d30396a96bdc0f55ffeca122455da1bb --- adaptors/base/render-helper.cpp | 5 ++--- adaptors/ecore/wayland/render-surface-ecore-wl.cpp | 4 ++++ 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/adaptors/base/render-helper.cpp b/adaptors/base/render-helper.cpp index 9ef0ee9..c77d2c9 100644 --- a/adaptors/base/render-helper.cpp +++ b/adaptors/base/render-helper.cpp @@ -79,9 +79,6 @@ void RenderHelper::Stop() { // Tell surface we have stopped rendering mSurface->StopRender(); - - // The surface will be destroyed soon; this pointer will become invalid - mSurface = NULL; } } @@ -140,6 +137,8 @@ void RenderHelper::ShutdownEgl() { // give a chance to destroy the OpenGL surface that created externally mSurface->DestroyEglSurface( *mEGL ); + + mSurface = NULL; } // delete the GL context / egl surface diff --git a/adaptors/ecore/wayland/render-surface-ecore-wl.cpp b/adaptors/ecore/wayland/render-surface-ecore-wl.cpp index 02a8eab..2db6f23 100644 --- a/adaptors/ecore/wayland/render-surface-ecore-wl.cpp +++ b/adaptors/ecore/wayland/render-surface-ecore-wl.cpp @@ -83,6 +83,10 @@ void EcoreWlRenderSurface::Init( Any surface ) EcoreWlRenderSurface::~EcoreWlRenderSurface() { + if( mOwnSurface ) + { + ecore_wl_shutdown(); + } } void EcoreWlRenderSurface::SetRenderNotification(TriggerEventInterface* renderNotification) -- 2.7.4