if (!ewd->fd_hdl)
{
ERR("Fail to add ecore fd(%d, wl.display) handler", wl_display_get_fd(ewd->wl.display));
- wl_registry_destroy(ewd->wl.registry);
- wl_display_disconnect(ewd->wl.display);
- ewd->wl.registry = NULL;
- ewd->wl.display = NULL;
+ if (ewd->refs == 0)
+ {
+ wl_registry_destroy(ewd->wl.registry);
+ wl_display_disconnect(ewd->wl.display);
+ ewd->wl.registry = NULL;
+ ewd->wl.display = NULL;
+ }
return EINA_FALSE;
}
// End of TIZEN_ONLY(20180109)
ewd->xkb_context = NULL;
context_err:
- eina_hash_free(ewd->globals);
- free(ewd->name);
- free(ewd);
+ if (ewd->refs == 0)
+ {
+ eina_hash_free(ewd->globals);
+ free(ewd->name);
+ free(ewd);
+ }
if (hash_create)
{