lc = eina_hash_find(_laundler->launchee_hash, &ec);
if (lc)
- ret = eina_hash_del(_laundler->launchee_hash, &lc->launched_ec, lc);
+ ret = eina_hash_del(_laundler->launchee_hash, &ec, lc);
if (ret)
_laundler->launchee_count--;
EINA_SAFETY_ON_NULL_RETURN(ec);
lc = _launcher_handler_launcher_find(ec);
- EINA_SAFETY_ON_NULL_RETURN(lc);
-
- if (lc->ec == ec) //launcher surface is gone.
+ if (lc && lc->ec == ec) //launcher surface is gone.
{
+ ELOGF("LAUNCHER_SRV", "Hook Client Del. launcher client was gone. lc:%p, launched_ec:%p, target.ec:%p", ec, lc, lc->launched_ec, lc->target.ec);
_launcher_handler_launchee_del(ec);
_launcher_handler_launcher_del(lc);
_launcher_data_reset(lc);
E_FREE(lc);
}
+ else
+ {
+ lc = _launcher_handler_launcher_find_with_launchee(ec);
+ if (lc)
+ {
+ ELOGF("LAUNCHER_SRV", "Hook Client Del. launchee client was gone. lc:%p, launched_ec:%p, target.ec:%p", ec, lc, lc->launched_ec, lc->target.ec);
+ _launcher_handler_launchee_del(ec);
+ }
+ }
}
static Eina_Bool