Cleanup _on_item_selected

Just return for the exception and avoid unnecessary allocation.
This commit is contained in:
Ryuan Choi 2013-07-18 02:48:07 +09:00
parent d6b87a1859
commit 51e684553b
1 changed files with 11 additions and 14 deletions

View File

@ -662,32 +662,29 @@ _on_item_selected(void *data,
struct sel_data *sdata; struct sel_data *sdata;
void *old_sd; void *old_sd;
char *dir; char *dir;
const char *path;
ELM_FILESELECTOR_DATA_GET(data, sd); ELM_FILESELECTOR_DATA_GET(data, sd);
path = elm_object_item_data_get(it);
if (!path)
return;
sdata = malloc(sizeof(*sdata)); sdata = malloc(sizeof(*sdata));
sdata->fs = data; sdata->fs = data;
sdata->path = elm_object_item_data_get(it); sdata->path = path;
if (!sdata->path) if (sd->only_folder)
eina_stringshare_replace(&sd->path, path);
else
{ {
eina_stringshare_replace(&sd->path, ""); dir = ecore_file_dir_get(sdata->path);
goto end; if (!dir) return;
}
dir = sd->only_folder ? strdup(sdata->path) :
ecore_file_dir_get(sdata->path);
if (dir)
{
eina_stringshare_replace(&sd->path, dir); eina_stringshare_replace(&sd->path, dir);
free(dir); free(dir);
} }
else
{
eina_stringshare_replace(&sd->path, "");
}
end:
if (sd->sel_idler) if (sd->sel_idler)
{ {
old_sd = ecore_idler_del(sd->sel_idler); old_sd = ecore_idler_del(sd->sel_idler);