more stringshare work

SVN revision: 18816
This commit is contained in:
Carsten Haitzler 2005-12-03 15:39:25 +00:00
parent 2f655c348d
commit d8c635f964
12 changed files with 97 additions and 100 deletions

View File

@ -1052,25 +1052,22 @@ ACT_FN_GO(app)
E_App *a = NULL;
char *p, *p2;
p2 = strdup(params);
if (p2)
p2 = alloca(strlen(params) + 1);
strcpy(p2, params);
p = strchr(p2, ' ');
if (p)
{
p = strchr(p2, ' ');
if (p)
{
*p = 0;
if (!strcmp(p2, "file:"))
a = e_app_file_find(p + 1);
else if (!strcmp(p2, "name:"))
a = e_app_name_find(p + 1);
else if (!strcmp(p2, "generic:"))
a = e_app_generic_find(p + 1);
else if (!strcmp(p2, "exe:"))
a = e_app_exe_find(p + 1);
if (a)
e_zone_app_exec(zone, a);
}
free(p2);
*p = 0;
if (!strcmp(p2, "file:"))
a = e_app_file_find(p + 1);
else if (!strcmp(p2, "name:"))
a = e_app_name_find(p + 1);
else if (!strcmp(p2, "generic:"))
a = e_app_generic_find(p + 1);
else if (!strcmp(p2, "exe:"))
a = e_app_exe_find(p + 1);
if (a)
e_zone_app_exec(zone, a);
}
}
}

View File

@ -25,10 +25,10 @@ e_config_dialog_new(E_Container *con, char *title, char *icon, int icon_size, E_
cfd = E_OBJECT_ALLOC(E_Config_Dialog, E_CONFIG_DIALOG_TYPE, _e_config_dialog_free);
cfd->view = *view;
cfd->con = con;
cfd->title = strdup(title);
cfd->title = evas_stringshare_add(title);
if (icon)
{
cfd->icon = strdup(icon);
cfd->icon = evas_stringshare_add(icon);
cfd->icon_size = icon_size;
}
cfd->data = data;
@ -43,8 +43,8 @@ e_config_dialog_new(E_Container *con, char *title, char *icon, int icon_size, E_
static void
_e_config_dialog_free(E_Config_Dialog *cfd)
{
E_FREE(cfd->title);
E_FREE(cfd->icon);
evas_stringshare_del(cfd->title);
evas_stringshare_del(cfd->icon);
if (cfd->cfdata)
{
cfd->view.free_cfdata(cfd, cfd->cfdata);

View File

@ -60,7 +60,7 @@ e_desk_new(E_Zone *zone, int x, int y)
if ((cfname->zone >= 0) &&
(zone->num != cfname->zone)) continue;
if ((cfname->desk_x != desk->x) || (cfname->desk_y != desk->y)) continue;
desk->name = strdup(cfname->name);
desk->name = evas_stringshare_add(cfname->name);
ok = 1;
break;
}
@ -68,7 +68,7 @@ e_desk_new(E_Zone *zone, int x, int y)
if (!ok)
{
snprintf(name, sizeof(name), _(e_config->desktop_default_name), x, y);
desk->name = strdup(name);
desk->name = evas_stringshare_add(name);
}
return desk;
@ -81,8 +81,8 @@ e_desk_name_set(E_Desk *desk, const char *name)
E_OBJECT_CHECK(desk);
E_OBJECT_TYPE_CHECK(desk, E_DESK_TYPE);
E_FREE(desk->name);
desk->name = strdup(name);
if (desk->name) evas_stringshare_del(desk->name);
desk->name = evas_stringshare_add(name);
ev = E_NEW(E_Event_Desk_Name_Change, 1);
ev->desk = desk;
@ -398,7 +398,7 @@ e_desk_prev(E_Zone *zone)
static void
_e_desk_free(E_Desk *desk)
{
E_FREE(desk->name);
if (desk->name) evas_stringshare_del(desk->name);
free(desk);
}

View File

@ -116,7 +116,7 @@ e_font_available_list_free(Evas_List *available)
{
efa = available->data;
available = evas_list_remove_list(available, available);
E_FREE(efa->name);
if (efa->name) evas_stringshare_del(efa->name);
E_FREE(efa);
}
}
@ -145,7 +145,7 @@ e_font_fallback_append(const char *font)
e_font_fallback_remove (font);
eff = E_NEW(E_Font_Fallback, 1);
eff->name = strdup(font);
eff->name = evas_stringshare_add(font);
e_config->font_fallbacks = evas_list_append(e_config->font_fallbacks, eff);
}
@ -175,7 +175,7 @@ e_font_fallback_remove(const char *font)
{
e_config->font_fallbacks = evas_list_remove_list(
e_config->font_fallbacks, next);
E_FREE(eff->name);
if (eff->name) evas_stringshare_del(eff->name);
E_FREE(eff);
break;
}
@ -200,8 +200,8 @@ e_font_default_set(const char *text_class, const char *font, int size)
efd = evas_list_data(next);
if (!strcmp(efd->text_class, text_class))
{
E_FREE(efd->font);
efd->font = strdup(font);
if (efd->font) evas_stringshare_del(efd->font);
efd->font = evas_stringshare_add(font);
efd->size = size;
/* move to the front of the list */
e_config->font_defaults = evas_list_remove_list(
@ -214,8 +214,8 @@ e_font_default_set(const char *text_class, const char *font, int size)
/* the text class doesnt exist */
efd = E_NEW(E_Font_Default, 1);
efd->text_class = strdup(text_class);
efd->font = strdup(font);
efd->text_class = evas_stringshare_add(text_class);
efd->font = evas_stringshare_add(font);
efd->size = size;
e_config->font_defaults = evas_list_prepend(e_config->font_defaults, efd);
@ -265,8 +265,8 @@ e_font_default_remove(const char *text_class)
{
e_config->font_defaults = evas_list_remove_list(
e_config->font_defaults, next);
E_FREE(efd->text_class);
E_FREE(efd->font);
if (efd->text_class) evas_stringshare_del(efd->text_class);
if (efd->font) evas_stringshare_del(efd->font);
E_FREE(efd);
return;
}
@ -359,7 +359,7 @@ _e_font_font_dir_available_get(Evas_List *available_fonts, const char *font_dir)
}
efa = malloc(sizeof(E_Font_Available));
efa->name = strdup(fname);
efa->name = evas_stringshare_add(fname);
available_fonts = evas_list_append(available_fonts, efa);
}
fclose (f);

View File

@ -34,7 +34,7 @@ e_gadget_new(E_Module *module,
e_object_ref(E_OBJECT(gad->module));
if(!name) return NULL;
gad->name = strdup(name);
gad->name = evas_stringshare_add(name);
gad->funcs.face_init = func_face_init;
gad->funcs.face_free = func_face_free;
@ -187,7 +187,7 @@ _e_gadget_free(E_Gadget *gad)
gad->module->config_menu = NULL;
e_object_unref(E_OBJECT(gad->module));
e_object_del(E_OBJECT(gad->menu));
free(gad->name);
if (gad->name) evas_stringshare_del(gad->name);
free(gad);
}

View File

@ -379,8 +379,8 @@ e_gadman_client_domain_set(E_Gadman_Client *gmc, char *domain, int instance)
{
E_OBJECT_CHECK(gmc);
E_OBJECT_TYPE_CHECK(gmc, E_GADMAN_CLIENT_TYPE);
if (gmc->domain) free(gmc->domain);
gmc->domain = strdup(domain);
if (gmc->domain) evas_stringshare_del(gmc->domain);
gmc->domain = evas_stringshare_add(domain);
gmc->instance = instance;
}
@ -730,7 +730,7 @@ _e_gadman_client_free(E_Gadman_Client *gmc)
if (gmc->control_object) evas_object_del(gmc->control_object);
if (gmc->event_object) evas_object_del(gmc->event_object);
gmc->gadman->clients = evas_list_remove(gmc->gadman->clients, gmc);
if (gmc->domain) free(gmc->domain);
if (gmc->domain) evas_stringshare_del(gmc->domain);
_e_gadman_config_free(gmc->config);
free(gmc);
}

View File

@ -515,22 +515,21 @@ _e_intl_language_path_find(char *language)
for (next_search = search_list ; next_search && !found ; next_search = next_search->next)
{
char message_path[PATH_MAX];
char *search_locale;
search_locale = next_search->data;
snprintf(message_path, sizeof(message_path), "%s/%s/LC_MESSAGES/%s.mo",
epd->dir, search_locale, PACKAGE);
if (ecore_file_exists(message_path) && !ecore_file_is_dir(message_path))
{
directory = strdup(epd->dir);
}
char message_path[PATH_MAX];
char *search_locale;
search_locale = next_search->data;
snprintf(message_path, sizeof(message_path), "%s/%s/LC_MESSAGES/%s.mo",
epd->dir, search_locale, PACKAGE);
if (ecore_file_exists(message_path) && !ecore_file_is_dir(message_path))
{
directory = strdup(epd->dir);
}
}
}
e_path_dir_list_free(dir_list);
while (search_list)
{
char *data;
@ -586,7 +585,7 @@ _e_intl_locale_alias_get(char *language)
char *alias;
if (language == NULL || !strncmp(language, "POSIX", strlen("POSIX")))
return strdup("C");
return strdup("C");
canonic = _e_intl_locale_canonic_get(language, E_LOC_ALL );

View File

@ -47,7 +47,6 @@ _e_ipc_cb_client_add(void *data __UNUSED__, int type __UNUSED__, void *event)
e = event;
if (ecore_ipc_client_server_get(e->client) != _e_ipc_server) return 1;
printf("E-IPC: client %p connected to server!\n", e->client);
return 1;
}
@ -58,7 +57,6 @@ _e_ipc_cb_client_del(void *data __UNUSED__, int type __UNUSED__, void *event)
e = event;
if (ecore_ipc_client_server_get(e->client) != _e_ipc_server) return 1;
printf("E-IPC: client %p disconnected from server!\n", e->client);
/* delete client sruct */
ecore_ipc_client_del(e->client);
return 1;
@ -79,12 +77,6 @@ _e_ipc_cb_client_data(void *data __UNUSED__, int type __UNUSED__, void *event)
default:
break;
}
printf("E-IPC: client sent: [%i] [%i] (%i) \"%p\"\n", e->major, e->minor, e->size, e->data);
/* ecore_ipc_client_send(e->client, 1, 2, 7, 77, 0, "ABC", 4); */
/* we can disconnect a client like this: */
/* ecore_ipc_client_del(e->client); */
/* or we can end a server by: */
/* ecore_ipc_server_del(ecore_ipc_client_server_get(e->client)); */
return 1;
}

View File

@ -324,10 +324,10 @@ e_menu_title_set(E_Menu *m, char *title)
return;
if (m->header.title)
{
free(m->header.title);
evas_stringshare_del(m->header.title);
m->header.title = NULL;
}
if (title) m->header.title = strdup(title);
if (title) m->header.title = evas_stringshare_add(title);
else m->header.title = NULL;
m->changed = 1;
}
@ -421,11 +421,11 @@ e_menu_item_icon_file_set(E_Menu_Item *mi, const char *icon)
if (((mi->icon) && (icon) && (!strcmp(icon, mi->icon))) ||
((!mi->icon) && (!icon)))
return;
if (mi->icon) free(mi->icon);
if (mi->icon_key) free(mi->icon_key);
if (mi->icon) evas_stringshare_del(mi->icon);
if (mi->icon_key) evas_stringshare_del(mi->icon_key);
mi->icon = NULL;
mi->icon_key = NULL;
if (icon) mi->icon = strdup(icon);
if (icon) mi->icon = evas_stringshare_add(icon);
mi->changed = 1;
mi->menu->changed = 1;
}
@ -439,12 +439,12 @@ e_menu_item_icon_edje_set(E_Menu_Item *mi, const char *icon, const char *key)
((!mi->icon) && (!icon)) ||
((key) && (mi->icon_key) && (!strcmp(key, mi->icon_key))))
return;
if (mi->icon) free(mi->icon);
if (mi->icon_key) free(mi->icon_key);
if (mi->icon) evas_stringshare_del(mi->icon);
if (mi->icon_key) evas_stringshare_del(mi->icon_key);
mi->icon = NULL;
mi->icon_key = NULL;
if (icon) mi->icon = strdup(icon);
if (key) mi->icon_key = strdup(key);
if (icon) mi->icon = evas_stringshare_add(icon);
if (key) mi->icon_key = evas_stringshare_add(key);
mi->changed = 1;
mi->menu->changed = 1;
}
@ -457,9 +457,9 @@ e_menu_item_label_set(E_Menu_Item *mi, const char *label)
if (((mi->label) && (label) && (!strcmp(label, mi->label))) ||
((!mi->label) && (!label)))
return;
if (mi->label) free(mi->label);
if (mi->label) evas_stringshare_del(mi->label);
mi->label = NULL;
if (label) mi->label = strdup(label);
if (label) mi->label = evas_stringshare_add(label);
mi->changed = 1;
mi->menu->changed = 1;
}
@ -863,6 +863,8 @@ _e_menu_free(E_Menu *m)
m->in_active_list = 0;
e_object_unref(E_OBJECT(m));
}
if (m->header.title) evas_stringshare_del(m->header.title);
if (m->header.icon_file) evas_stringshare_del(m->header.icon_file);
free(m);
}
@ -876,9 +878,9 @@ _e_menu_item_free(E_Menu_Item *mi)
}
if (mi->menu->realized) _e_menu_item_unrealize(mi);
mi->menu->items = evas_list_remove(mi->menu->items, mi);
if (mi->icon) free(mi->icon);
if (mi->icon_key) free(mi->icon_key);
if (mi->label) free(mi->label);
if (mi->icon) evas_stringshare_del(mi->icon);
if (mi->icon_key) evas_stringshare_del(mi->icon_key);
if (mi->label) evas_stringshare_del(mi->label);
free(mi);
}

View File

@ -186,7 +186,7 @@ e_module_new(char *name)
init_done:
_e_modules = evas_list_append(_e_modules, m);
m->name = strdup(name);
m->name = evas_stringshare_add(name);
s = modpath ? ecore_file_get_dir(modpath) : NULL;
if (s)
{
@ -438,7 +438,7 @@ _e_module_free(E_Module *m)
m->func.save(m);
m->func.shutdown(m);
}
if (m->name) free(m->name);
if (m->name) evas_stringshare_del(m->name);
if (m->dir) free(m->dir);
if (m->handle) dlclose(m->handle);
_e_modules = evas_list_remove(_e_modules, m);

View File

@ -56,8 +56,10 @@ e_msg_send(char *name, char *info, int val, E_Object *obj)
E_Msg_Event *ev;
ev = calloc(1, sizeof(E_Msg_Event));
if (name) ev->name = strdup(name);
if (info) ev->info = strdup(info);
/* FIXME: probably better todup the strings but merge with a single
* malloc for the event struct */
if (name) ev->name = evas_stringshare_add(name);
if (info) ev->info = evas_stringshare_add(info);
ev->val = val;
ev->obj = obj;
if (ev->obj) e_object_ref(ev->obj);
@ -128,7 +130,7 @@ _e_msg_event_free(void *data, void *ev)
E_Msg_Event *e;
e = ev;
if (e->name) free(e->name);
if (e->info) free(e->info);
if (e->name) evas_stringshare_del(e->name);
if (e->info) evas_stringshare_del(e->info);
if (e->obj) e_object_unref(e->obj);
}

View File

@ -49,9 +49,10 @@ e_path_default_path_append(E_Path *ep, const char *path)
return;
}
epd->dir = new_path;
strcpy(new_path, home_dir);
strcat(new_path, path + 1);
epd->dir = evas_stringshare_add(new_path);
free(new_path);
free(home_dir);
ep->default_dir_list = evas_list_append(ep->default_dir_list, epd);
}
@ -61,7 +62,7 @@ e_path_default_path_append(E_Path *ep, const char *path)
epd = malloc(sizeof(E_Path_Dir));
if (!epd)
return;
epd->dir = strdup(path);
epd->dir = evas_stringshare_add(path);
ep->default_dir_list = evas_list_append(ep->default_dir_list, epd);
}
_e_path_cache_free(ep);
@ -109,9 +110,10 @@ e_path_user_path_append(E_Path *ep, const char *path)
return;
}
epd->dir = new_path;
strcpy(new_path, home_dir);
strcat(new_path, path + 1);
epd->dir = evas_stringshare_add(new_path);
free(new_path);
free(home_dir);
*(ep->user_dir_list) = evas_list_append(*(ep->user_dir_list), epd);
}
@ -121,7 +123,7 @@ e_path_user_path_append(E_Path *ep, const char *path)
epd = malloc(sizeof(E_Path_Dir));
if (!epd)
return;
epd->dir = strdup(path);
epd->dir = evas_stringshare_add(path);
*(ep->user_dir_list) = evas_list_append(*(ep->user_dir_list), epd);
}
_e_path_cache_free(ep);
@ -158,9 +160,10 @@ e_path_user_path_prepend(E_Path *ep, const char *path)
return;
}
epd->dir = new_path;
strcpy(new_path, home_dir);
strcat(new_path, path + 1);
epd->dir = evas_stringshare_add(new_path);
free(new_path);
free(home_dir);
*(ep->user_dir_list) = evas_list_prepend(*(ep->user_dir_list), epd);
}
@ -170,7 +173,7 @@ e_path_user_path_prepend(E_Path *ep, const char *path)
epd = malloc(sizeof(E_Path_Dir));
if (!epd)
return;
epd->dir = strdup(path);
epd->dir = evas_stringshare_add(path);
*(ep->user_dir_list) = evas_list_prepend(*(ep->user_dir_list), epd);
}
_e_path_cache_free(ep);
@ -214,7 +217,7 @@ e_path_user_path_remove(E_Path *ep, const char *path)
{
*(ep->user_dir_list) = evas_list_remove_list(
*(ep->user_dir_list), l);
free(epd->dir);
evas_stringshare_del(epd->dir);
free(epd);
free(new_path);
_e_path_cache_free(ep);
@ -236,7 +239,7 @@ e_path_user_path_remove(E_Path *ep, const char *path)
{
*(ep->user_dir_list) = evas_list_remove_list(
*(ep->user_dir_list), l);
free(epd->dir);
evas_stringshare_del(epd->dir);
free(epd);
_e_path_cache_free(ep);
return;
@ -277,7 +280,8 @@ e_path_find(E_Path *ep, const char *file)
free(rp);
if (evas_hash_size(ep->hash) >= 512)
_e_path_cache_free(ep);
ep->hash = evas_hash_add(ep->hash, file, strdup(buf));
ep->hash = evas_hash_add(ep->hash, file,
evas_stringshare_add(buf));
return strdup(buf);
}
if (rp) free(rp);
@ -301,7 +305,8 @@ e_path_find(E_Path *ep, const char *file)
free(rp);
if (evas_hash_size(ep->hash) >= 512)
_e_path_cache_free(ep);
ep->hash = evas_hash_add(ep->hash, file, strdup(buf));
ep->hash = evas_hash_add(ep->hash, file,
evas_stringshare_add(buf));
return strdup(buf);
}
if (rp) free(rp);
@ -328,7 +333,7 @@ e_path_evas_append(E_Path *ep, Evas *evas)
epd = l->data;
if (epd->dir) evas_font_path_append(evas, epd->dir);
free(epd->dir);
evas_stringshare_del(epd->dir);
free(epd);
}
if (dir_list) evas_list_free(dir_list);
@ -351,7 +356,7 @@ e_path_dir_list_get(E_Path *ep)
{
epd = l->data;
new_epd = malloc(sizeof(E_Path_Dir));
new_epd->dir = strdup(epd->dir);
new_epd->dir = evas_stringshare_add(epd->dir);
dir_list = evas_list_append(dir_list, new_epd);
}
}
@ -360,7 +365,7 @@ e_path_dir_list_get(E_Path *ep)
{
epd = l->data;
new_epd = malloc(sizeof(E_Path_Dir));
new_epd->dir = strdup(epd->dir);
new_epd->dir = evas_stringshare_add(epd->dir);
dir_list = evas_list_append(dir_list, new_epd);
}
@ -376,7 +381,7 @@ e_path_dir_list_free(Evas_List *dir_list)
{
epd = dir_list->data;
dir_list = evas_list_remove_list(dir_list, dir_list);
free(epd->dir);
evas_stringshare_del(epd->dir);
free(epd);
}
}
@ -390,10 +395,10 @@ _e_path_free(E_Path *ep)
{
E_Path_Dir *epd;
epd = ep->default_dir_list->data;
free(epd->dir);
evas_stringshare_del(epd->dir);
free(epd);
ep->default_dir_list = evas_list_remove_list(ep->default_dir_list,
ep->default_dir_list);
ep->default_dir_list);
}
free(ep);
}
@ -410,6 +415,6 @@ _e_path_cache_free(E_Path *ep)
static Evas_Bool
_e_path_cache_free_cb(Evas_Hash *hash __UNUSED__, const char *key __UNUSED__, void *data, void *fdata __UNUSED__)
{
free(data);
evas_stringshare_del(data);
return 1;
}