Fix crash by NULL remote surface
authortaeyoon0.lee <taeyoon0.lee@samsung.com>
Wed, 22 Mar 2017 13:30:02 +0000 (22:30 +0900)
committertaeyoon0.lee <taeyoon0.lee@samsung.com>
Thu, 1 Jun 2017 04:43:26 +0000 (13:43 +0900)
 - Fix crash by untialized remoteSurface member when widget viewer is terminated.

Change-Id: I2ecb5295919b8cff5d9927c1beb6831d74af902e

internal/widget_view/widget_view_impl.cpp

index 81cfea4..166da2d 100644 (file)
@@ -105,6 +105,7 @@ DALI_ACTION_REGISTRATION( Dali::WidgetView, WidgetView, "activateFaultedWidget",
 DALI_TYPE_REGISTRATION_END()
 
 struct wl_buffer* preBuffer;
+struct tizen_remote_surface* remoteSurface;
 
 const char* const STATE_TEXT( "stateText" );
 const char* const FONT_STYLE( "fontStyle" );
@@ -141,6 +142,7 @@ static void OnBufferUpdated( struct tizen_remote_surface *surface, uint32_t type
     wl_buffer_destroy( preBuffer );
   }
 
+  remoteSurface = surface;
   preBuffer = buffer;
 
   close( img_file_fd );
@@ -1069,9 +1071,9 @@ void WidgetView::CloseRemoteSurface()
 {
   if( mWatcherHandle != NULL )
   {
-    if( preBuffer != NULL && tizen_remote_surface_get_version( mRemoteSurface ) >= TIZEN_REMOTE_SURFACE_RELEASE_SINCE_VERSION )
+    if( remoteSurface != NULL && preBuffer != NULL && tizen_remote_surface_get_version( remoteSurface ) >= TIZEN_REMOTE_SURFACE_RELEASE_SINCE_VERSION )
     {
-      tizen_remote_surface_release( mRemoteSurface, preBuffer );
+      tizen_remote_surface_release( remoteSurface, preBuffer );
       tbm_surface_h preTbmSurface = (tbm_surface_h)wl_buffer_get_user_data( preBuffer );
       tbm_surface_internal_unref( preTbmSurface );
       wl_buffer_destroy( preBuffer );