Cleanup _on_item_selected
authorRyuan Choi <ryuan.choi@gmail.com>
Wed, 17 Jul 2013 17:48:07 +0000 (02:48 +0900)
committerRyuan Choi <ryuan.choi@gmail.com>
Wed, 17 Jul 2013 17:56:50 +0000 (02:56 +0900)
Just return for the exception and avoid unnecessary allocation.

src/lib/elc_fileselector.c

index 68b6df1..720df02 100644 (file)
@@ -662,32 +662,29 @@ _on_item_selected(void *data,
    struct sel_data *sdata;
    void *old_sd;
    char *dir;
+   const char *path;
 
    ELM_FILESELECTOR_DATA_GET(data, sd);
 
+   path = elm_object_item_data_get(it);
+   if (!path)
+     return;
+
    sdata = malloc(sizeof(*sdata));
    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, "");
-        goto end;
-     }
+        dir = ecore_file_dir_get(sdata->path);
+        if (!dir) return;
 
-   dir = sd->only_folder ? strdup(sdata->path) :
-     ecore_file_dir_get(sdata->path);
-   if (dir)
-     {
         eina_stringshare_replace(&sd->path, dir);
         free(dir);
      }
-   else
-     {
-        eina_stringshare_replace(&sd->path, "");
-     }
 
-end:
    if (sd->sel_idler)
      {
         old_sd = ecore_idler_del(sd->sel_idler);