rephorm had a seggie, but not enough information to track down a

solution.  So, just be extra paranoid.


SVN revision: 26721
This commit is contained in:
David Walter Seikel 2006-10-20 21:31:21 +00:00
parent 67df17a573
commit 70518d5c50
1 changed files with 39 additions and 24 deletions

View File

@ -511,6 +511,9 @@ e_app_new(const char *path, int scan_subdirs)
{ {
if (a->monitor) ecore_file_monitor_del(a->monitor); if (a->monitor) ecore_file_monitor_del(a->monitor);
if (a->path) evas_stringshare_del(a->path); if (a->path) evas_stringshare_del(a->path);
/* Just going that little extra paranoid, coz rephorm got a strange seggie. */
a->monitor = NULL;
a->path = NULL;
e_app_fields_empty(a); e_app_fields_empty(a);
free(a); free(a);
} }
@ -1000,6 +1003,7 @@ e_app_remove(E_App *a)
_e_apps_every_app = evas_hash_del(_e_apps_every_app, a->path, a); _e_apps_every_app = evas_hash_del(_e_apps_every_app, a->path, a);
evas_stringshare_del(a->path); evas_stringshare_del(a->path);
a->path = evas_stringshare_add(buf); a->path = evas_stringshare_add(buf);
if (a->path)
_e_apps_every_app = evas_hash_direct_add(_e_apps_every_app, a->path, a); _e_apps_every_app = evas_hash_direct_add(_e_apps_every_app, a->path, a);
} }
_e_app_save_order(a->parent); _e_app_save_order(a->parent);
@ -2185,6 +2189,9 @@ printf("e_app_icon_add(%s) %s %s %s\n", a->path, a->icon_class, e_config->
{ {
char *ext; char *ext;
/* Be paranoid. */
if (a->icon_path)
{
o = e_icon_add(evas); o = e_icon_add(evas);
ext = strrchr(a->icon_path, '.'); ext = strrchr(a->icon_path, '.');
if (ext) if (ext)
@ -2197,6 +2204,7 @@ printf("e_app_icon_add(%s) %s %s %s\n", a->path, a->icon_class, e_config->
else else
e_icon_file_set(o, a->icon_path); e_icon_file_set(o, a->icon_path);
e_icon_fill_inside_set(o, 1); e_icon_fill_inside_set(o, 1);
}
break; break;
} }
@ -2242,6 +2250,9 @@ printf("e_app_icon_add_to_menu_item(%s) %s %s %s\n", a->path, a->icon_clas
{ {
char *ext; char *ext;
/* Be paranoid. */
if (a->icon_path)
{
ext = strrchr(a->icon_path, '.'); ext = strrchr(a->icon_path, '.');
if (ext) if (ext)
{ {
@ -2252,6 +2263,7 @@ printf("e_app_icon_add_to_menu_item(%s) %s %s %s\n", a->path, a->icon_clas
} }
else else
e_menu_item_icon_file_set(mi, a->icon_path); e_menu_item_icon_file_set(mi, a->icon_path);
}
break; break;
} }
@ -2357,6 +2369,9 @@ _e_app_free(E_App *a)
e_app_fields_empty(a); e_app_fields_empty(a);
if (a->path) if (a->path)
evas_stringshare_del(a->path); evas_stringshare_del(a->path);
/* Just going that little extra paranoid, coz rephorm got a strange seggie. */
a->monitor = NULL;
a->path = NULL;
free(a); free(a);
} }
} }