{
struct wl_resource *seat_resource = (struct wl_resource *)data;
E_Tizen_Devicemgr_User_Data *device_user_data;
+ struct wl_resource *temp = NULL;
DMDBG("Listener(%p) called: seat_resource: %p destroyed", l, seat_resource);
device_user_data = container_of(l, E_Tizen_Devicemgr_User_Data,
seat_destroy_listener);
- if (!device_user_data) return;
+
+ if (seat_resource != device_user_data->seat_res) return;
+ device_user_data->seat_res = NULL;
if (device_user_data->seat_destroy_listener.notify)
{
if (device_user_data->resource)
{
DMDBG("Destroy device resource. (res: %u)", wl_resource_get_id(device_user_data->resource));
- wl_resource_destroy(device_user_data->resource);
+ temp = device_user_data->resource;
device_user_data->resource = NULL;
+ wl_resource_destroy(temp);
}
-
- device_user_data->seat_res = NULL;
}
static void
{
struct wl_resource *mgr_resource = (struct wl_resource *)data;
E_Tizen_Devicemgr_User_Data *device_user_data;
+ struct wl_resource *temp = NULL;
DMDBG("Listener(%p) called: mgr_resource: %p destroyed", l, mgr_resource);
device_user_data = container_of(l, E_Tizen_Devicemgr_User_Data,
manager_destroy_listener);
- if (!device_user_data) return;
+
+ if (mgr_resource != device_user_data->mgr_res) return;
+ device_user_data->mgr_res = NULL;
if (device_user_data->manager_destroy_listener.notify)
{
if (device_user_data->resource)
{
DMDBG("Destroy device resource. (res: %u)", wl_resource_get_id(device_user_data->resource));
- wl_resource_destroy(device_user_data->resource);
+ temp = device_user_data->resource;
device_user_data->resource = NULL;
+ wl_resource_destroy(temp);
}
-
- device_user_data->mgr_res = NULL;
}
static void