예제 #1
0
EOLIAN static void
_efl_net_control_technology_efl_object_destructor(Eo *o, Efl_Net_Control_Technology_Data *pd)
{
   Eldbus_Pending *p;
   Eldbus_Signal_Handler *sh;

   EINA_LIST_FREE(pd->pending, p)
     eldbus_pending_cancel(p);

   EINA_LIST_FREE(pd->signal_handlers, sh)
     eldbus_signal_handler_del(sh);

   if (pd->proxy)
     {
        Eldbus_Object *obj = eldbus_proxy_object_get(pd->proxy);
        eldbus_proxy_unref(pd->proxy);
        pd->proxy = NULL;
        eldbus_object_unref(obj);
     }

   efl_destructor(efl_super(o, MY_CLASS));
   eina_stringshare_replace(&pd->path, NULL);
   eina_stringshare_replace(&pd->name, NULL);
   eina_stringshare_replace(&pd->tethering.identifier, NULL);
   eina_stringshare_replace(&pd->tethering.passphrase, NULL);
}
예제 #2
0
void
wkb_ibus_input_context_destroy(void)
{
   if (!wkb_ibus || !wkb_ibus->input_ctx)
      return;

   if (wkb_ibus->input_ctx->pending)
      eldbus_pending_cancel(wkb_ibus->input_ctx->pending);

   if (wkb_ibus->input_ctx->ibus_ctx)
     {
        eldbus_proxy_call(wkb_ibus->input_ctx->ibus_ctx, "FocusOut", NULL, NULL, -1, "");
        eldbus_proxy_unref(wkb_ibus->input_ctx->ibus_ctx);
     }

   free(wkb_ibus->input_ctx->preedit);
   free(wkb_ibus->input_ctx);
   wkb_ibus->input_ctx = NULL;
}