From: taeyoon0.lee Date: Wed, 15 Mar 2017 07:51:46 +0000 (+0900) Subject: Fix crash by fd increase X-Git-Tag: submit/tizen/20170609.022657~7 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=a53102cca4ddabaae685d7102fbb69281f2bdc8f;p=platform%2Fcore%2Fappfw%2Fwidget-viewer.git Fix crash by fd increase - Added wl_buffer_destroy in tizen remote surface changed/update callback Change-Id: Id22549d43bee48e30dfd94c020e66db942f2672b --- diff --git a/widget_viewer_dali/internal/widget_view/widget_view_impl.cpp b/widget_viewer_dali/internal/widget_view/widget_view_impl.cpp index f9ed21da..81cfea47 100644 --- a/widget_viewer_dali/internal/widget_view/widget_view_impl.cpp +++ b/widget_viewer_dali/internal/widget_view/widget_view_impl.cpp @@ -36,6 +36,7 @@ #include #include #include +#include #include #include @@ -135,6 +136,9 @@ static void OnBufferUpdated( struct tizen_remote_surface *surface, uint32_t type if( preBuffer != NULL && tizen_remote_surface_get_version( surface ) >= TIZEN_REMOTE_SURFACE_RELEASE_SINCE_VERSION ) { tizen_remote_surface_release( surface, preBuffer ); + tbm_surface_h preTbmSurface = (tbm_surface_h)wl_buffer_get_user_data( preBuffer ); + tbm_surface_internal_unref( preTbmSurface ); + wl_buffer_destroy( preBuffer ); } preBuffer = buffer; @@ -1065,6 +1069,15 @@ void WidgetView::CloseRemoteSurface() { if( mWatcherHandle != NULL ) { + if( preBuffer != NULL && tizen_remote_surface_get_version( mRemoteSurface ) >= TIZEN_REMOTE_SURFACE_RELEASE_SINCE_VERSION ) + { + tizen_remote_surface_release( mRemoteSurface, preBuffer ); + tbm_surface_h preTbmSurface = (tbm_surface_h)wl_buffer_get_user_data( preBuffer ); + tbm_surface_internal_unref( preTbmSurface ); + wl_buffer_destroy( preBuffer ); + preBuffer = NULL; + } + screen_connector_toolkit_remove( mWatcherHandle ); mWatcherHandle = NULL; mRemoteSurface = NULL;