本文整理匯總了C++中EINA_LIST_FREE函數的典型用法代碼示例。如果您正苦於以下問題:C++ EINA_LIST_FREE函數的具體用法?C++ EINA_LIST_FREE怎麽用?C++ EINA_LIST_FREE使用的例子?那麽, 這裏精選的函數代碼示例或許可以為您提供幫助。
在下文中一共展示了EINA_LIST_FREE函數的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的C++代碼示例。
示例1: _efl_net_control_technology_efl_object_destructor
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: ecore_imf_context_del
EAPI void
ecore_imf_context_del(Ecore_IMF_Context *ctx)
{
Ecore_IMF_Func_Node *fn;
if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT))
{
ECORE_MAGIC_FAIL(ctx, ECORE_MAGIC_CONTEXT,
"ecore_imf_context_del");
return;
}
if (show_req_ctx == ctx)
show_req_ctx = NULL;
if (ctx->klass->del) ctx->klass->del(ctx);
if (ctx->callbacks)
{
EINA_LIST_FREE(ctx->callbacks, fn)
free(fn);
}
if (ctx->input_panel_callbacks)
{
EINA_LIST_FREE(ctx->input_panel_callbacks, fn)
free(fn);
}
ECORE_MAGIC_SET(ctx, ECORE_MAGIC_NONE);
free(ctx);
}
示例3: ecore_con_url_destroy
/**
* Destroys a Ecore_Con_Url connection object.
*
* @ingroup Ecore_Con_Url_Group
*
* @see ecore_con_url_new()
*/
EAPI void
ecore_con_url_destroy(Ecore_Con_Url *url_con)
{
#ifdef HAVE_CURL
char *s;
if (!url_con) return;
if (!ECORE_MAGIC_CHECK(url_con, ECORE_MAGIC_CON_URL))
{
ECORE_MAGIC_FAIL(url_con, ECORE_MAGIC_CON_URL, "ecore_con_url_destroy");
return;
}
ECORE_MAGIC_SET(url_con, ECORE_MAGIC_NONE);
if(url_con->fd != -1)
{
FD_CLR(url_con->fd, &_current_fd_set);
if (url_con->fd_handler)
ecore_main_fd_handler_del(url_con->fd_handler);
url_con->fd = -1;
url_con->fd_handler = NULL;
}
if (url_con->post)
curl_formfree(url_con->post);
url_con->post = NULL;
if (url_con->curl_easy)
{
// FIXME: For an unknown reason, progress continue to arrive after destruction
// this prevent any further call to the callback.
curl_easy_setopt(url_con->curl_easy, CURLOPT_PROGRESSFUNCTION, NULL);
if (url_con->active)
{
url_con->active = 0;
curl_multi_remove_handle(curlm, url_con->curl_easy);
}
curl_easy_cleanup(url_con->curl_easy);
}
_url_con_list = eina_list_remove(_url_con_list, url_con);
curl_slist_free_all(url_con->headers);
EINA_LIST_FREE(url_con->additional_headers, s)
free(s);
EINA_LIST_FREE(url_con->response_headers, s)
free(s);
free(url_con->url);
free(url_con);
#else
return;
url_con = NULL;
#endif
}
示例4: _fid_del
static void
_fid_del(_Function_Id *fid)
{
_Parameter_Desc *param;
if (!fid) return;
eina_stringshare_del(fid->name);
eina_hash_free(fid->data);
EINA_LIST_FREE(fid->keys, param) _param_del(param);
EINA_LIST_FREE(fid->params, param) _param_del(param);
free(fid);
}
示例5: session_windows_list_clear
void
session_windows_list_clear(Session *session)
{
EINA_SAFETY_ON_NULL_RETURN(session);
Session_Window *data;
EINA_LIST_FREE(session->windows, data) session_window_free(data);
}
示例6: session_window_tabs_list_clear
void
session_window_tabs_list_clear(Session_Window *session_window)
{
EINA_SAFETY_ON_NULL_RETURN(session_window);
Session_Item *data;
EINA_LIST_FREE(session_window->tabs, data) session_item_free(data);
}
示例7: _find_interface_class
static int
_find_interface_class(int iclass)
{
Eina_List *devs;
char *name;
devs = ecore_file_ls("/sys/bus/usb/devices");
EINA_LIST_FREE(devs, name)
{
char buf[PATH_MAX];
FILE *f;
snprintf(buf, sizeof(buf), "%s/%s/%s",
"/sys/bus/usb/devices", name, "bInterfaceClass");
f = fopen(buf, "r");
if (f)
{
if (fgets(buf, sizeof(buf), f))
{
int id = -1;
sscanf(buf, "%x", &id);
if (iclass == id)
{
EINA_LIST_FREE(devs, name)
free(name);
fclose(f);
return 1;
}
}
fclose(f);
}
free(name);
}
示例8: libclouseau_item_add
static void
libclouseau_item_add(Evas_Object *o, Clouseau_Tree_Item *parent)
{
Clouseau_Tree_Item *treeit;
Eina_List *children;
Evas_Object *child;
treeit = calloc(1, sizeof(Clouseau_Tree_Item));
if (!treeit) return ;
treeit->ptr = (uintptr_t) o;
treeit->is_obj = EINA_TRUE;
treeit->name = eina_stringshare_add(evas_object_type_get(o));
treeit->is_clipper = !!evas_object_clipees_get(o);
treeit->is_visible = evas_object_visible_get(o);
treeit->info = clouseau_object_information_get(treeit);
parent->children = eina_list_append(parent->children, treeit);
/* if (!evas_object_smart_data_get(o)) return ; */
/* Do this only for smart object */
children = evas_object_smart_members_get(o);
EINA_LIST_FREE(children, child)
libclouseau_item_add(child, treeit);
}
示例9: _load_list
static Eina_List *
_load_list(void)
{
Eina_List *tree = NULL;
Eina_List *ees;
Ecore_Evas *ee;
ees = ecore_evas_ecore_evas_list_get();
EINA_LIST_FREE(ees, ee)
{
Eina_List *objs;
Evas_Object *obj;
Clouseau_Tree_Item *treeit;
Evas *e;
int w, h;
e = ecore_evas_get(ee);
evas_output_size_get(e, &w, &h);
treeit = calloc(1, sizeof(Clouseau_Tree_Item));
if (!treeit) continue ;
treeit->name = eina_stringshare_add(ecore_evas_title_get(ee));
treeit->ptr = (uintptr_t) ee;
tree = eina_list_append(tree, treeit);
objs = evas_objects_in_rectangle_get(e, SHRT_MIN, SHRT_MIN,
USHRT_MAX, USHRT_MAX, EINA_TRUE, EINA_TRUE);
EINA_LIST_FREE(objs, obj)
libclouseau_item_add(obj, treeit);
}
示例10: main
int
main(int argc, char **argv)
{
Eina_List *list = NULL;
Eina_List *l;
void *list_data;
eina_init();
list = eina_list_append(list, eina_stringshare_add("calvin"));
list = eina_list_append(list, eina_stringshare_add("Leoben"));
list = eina_list_append(list, eina_stringshare_add("D'Anna"));
list = eina_list_append(list, eina_stringshare_add("Simon"));
list = eina_list_append(list, eina_stringshare_add("Doral"));
list = eina_list_append(list, eina_stringshare_add("Six"));
list = eina_list_append(list, eina_stringshare_add("Sharon"));
for(l = list; l; l = eina_list_next(l))
printf("%s\n", (char*)l->data);
for(l = eina_list_last(list); l; l = eina_list_prev(l))
printf("%s\n", (char*)eina_list_data_get(l));
EINA_LIST_FREE(list, list_data)
eina_stringshare_del(list_data);
eina_shutdown();
return 0;
}
示例11: _evas_gl_preload_main_loop_wakeup
static void
_evas_gl_preload_main_loop_wakeup(void)
{
Evas_GL_Texture_Async_Preload *async;
evas_gl_make_current_cb cb = async_gl_make_current;
void *data = async_engine_data;
Eina_Bool running = async_loader_running;
if (running) evas_gl_preload_render_lock(cb, data);
EINA_LIST_FREE(async_loader_todie, async)
{
Eo *target;
EINA_LIST_FREE(async->tex->targets, target)
eo_do(target, evas_obj_image_pixels_dirty_set(EINA_TRUE));
async->im->cache_entry.flags.preload_done = 0;
async->tex->was_preloaded = EINA_TRUE;
async->tex->ptt->allocations = eina_list_remove(async->tex->ptt->allocations, async->tex->aptt);
pt_unref(async->tex->ptt);
async->tex->ptt = NULL;
free(async->tex->aptt);
async->tex->aptt = NULL;
evas_gl_common_texture_free(async->tex, EINA_FALSE);
evas_cache_image_drop(&async->im->cache_entry);
free(async);
}
示例12: eabout_packages_free
void
eabout_packages_free(Eina_List *list)
{
package_t *data;
EINA_LIST_FREE(list, data)
eabout_package_item_free(data);
}
示例13: efreet_desktop_shutdown
/**
* @internal
* @returns the number of initializations left for this system
* @brief Attempts to shut down the subsystem if nothing else is using it
*/
void
efreet_desktop_shutdown(void)
{
Efreet_Desktop_Type_Info *info;
char *dir;
if (efreet_desktop_exe_handler) ecore_event_handler_del(efreet_desktop_exe_handler);
IF_RELEASE(desktop_environment);
IF_FREE_HASH(efreet_desktop_cache);
while (efreet_desktop_types)
{
info = eina_list_data_get(efreet_desktop_types);
efreet_desktop_type_info_free(info);
efreet_desktop_types = eina_list_remove_list(efreet_desktop_types,
efreet_desktop_types);
}
EINA_LIST_FREE(efreet_desktop_dirs, dir)
eina_stringshare_del(dir);
if (cache_monitor) ecore_file_monitor_del(cache_monitor);
if (change_monitors) eina_hash_free(change_monitors);
if (cache) eet_close(cache);
efreet_desktop_edd_shutdown(desktop_edd);
ecore_file_shutdown();
eina_log_domain_unregister(_efreet_desktop_log_dom);
IF_RELEASE(cache_file);
IF_RELEASE(cache_dirs);
if (efreet_desktop_job) ecore_job_del(efreet_desktop_job);
efreet_desktop_job = NULL;
}
示例14: e_backlight_shutdown
EINTERN int
e_backlight_shutdown(void)
{
const char *s;
if (bl_anim) ecore_animator_del(bl_anim);
bl_anim = NULL;
if (e_config->backlight.mode != E_BACKLIGHT_MODE_NORMAL)
e_backlight_level_set(NULL, e_config->backlight.normal, 0.0);
EINA_LIST_FREE(bl_devs, s)
eina_stringshare_del(s);
#ifdef HAVE_EEZE
if (bl_sysval) eina_stringshare_del(bl_sysval);
bl_sysval = NULL;
if (bl_sys_exit_handler) ecore_event_handler_del(bl_sys_exit_handler);
bl_sys_exit_handler = NULL;
bl_sys_set_exe = NULL;
bl_sys_pending_set = EINA_FALSE;
eeze_shutdown();
#endif
return 1;
}
示例15: e_int_config_wallpaper_web_del
void
e_int_config_wallpaper_web_del(E_Dialog *dia)
{
Web *web;
Ecore_File_Download_Job *job;
Exchange_Object *wp;
Eina_List *l;
web = dia->data;
e_int_config_wallpaper_web_done(web->parent);
EINA_LIST_FOREACH(web->jobs, l, job)
ecore_file_download_abort(job);
EINA_LIST_FREE(web->objs, wp)
exchange_object_free(wp);
evas_object_del(web->list);
evas_object_del(web->textblock);
evas_object_del(web->image);
E_FREE(web);
e_object_unref(E_OBJECT(dia));
exchange_shutdown();
}