};
static void _e_comp_wl_video_object_setup(E_Video_Object *vo, E_Client *ec);
-static void _e_comp_wl_video_object_destroy(E_Video_Object *vo);
static int
_e_comp_wl_video_object_prop_id_get(E_Video_Object *vo, const char *name)
ec = ev->ec;
vo = data;
if (vo->ec != ec) return ECORE_CALLBACK_PASS_ON;
- if (!ec->comp_data) return ECORE_CALLBACK_PASS_ON;
- _e_comp_wl_video_object_destroy(vo);
+ E_FREE_FUNC(vo->client_event_handler.visibility_change, ecore_event_handler_del);
+ E_FREE_FUNC(vo->client_event_handler.remove, ecore_event_handler_del);
+
+ e_client_video_unset(vo->ec);
+
+ vo->ec = NULL;
return ECORE_CALLBACK_PASS_ON;
}
}
}
-static void
-_e_comp_wl_video_object_destroy(E_Video_Object *vo)
-{
- if (!vo)
- return;
-
- VIN("destroy", vo->ec);
-
- wl_resource_set_destructor(vo->resource, NULL);
-
- E_FREE_FUNC(vo->client_event_handler.visibility_change, ecore_event_handler_del);
- E_FREE_FUNC(vo->client_event_handler.remove, ecore_event_handler_del);
-
- e_client_video_unset(vo->ec);
-
- free(vo);
-}
-
static void
_e_comp_wl_video_object_resource_destroy(struct wl_resource *resource)
{
E_Video_Object *vo = wl_resource_get_user_data(resource);
EINA_SAFETY_ON_NULL_RETURN(vo);
- _e_comp_wl_video_object_destroy(vo);
+ if (vo->ec)
+ {
+ E_FREE_FUNC(vo->client_event_handler.visibility_change, ecore_event_handler_del);
+ E_FREE_FUNC(vo->client_event_handler.remove, ecore_event_handler_del);
+
+ e_client_video_unset(vo->ec);
+ }
+
+ free(vo);
}
static void
int id;
vo = wl_resource_get_user_data(resource);
- EINA_SAFETY_ON_NULL_RETURN(vo);
if (!vo->ec)
return;
E_Video_Object *vo;
vo = wl_resource_get_user_data(resource);
- EINA_SAFETY_ON_NULL_RETURN(vo);
if(!vo->ec)
return;
E_Video_Object *vo;
vo = wl_resource_get_user_data(resource);
- EINA_SAFETY_ON_NULL_RETURN(vo);
if(!vo->ec)
return;
E_Video_Object *vo;
vo = wl_resource_get_user_data(resource);
- EINA_SAFETY_ON_NULL_RETURN(vo);
if(!vo->ec)
return;
E_Video_Object *vo;
vo = wl_resource_get_user_data(resource);
- EINA_SAFETY_ON_NULL_RETURN(vo);
if(!vo->ec)
return;