raster pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=2037474dc0fd2b360452f2a15abcbe533b57ca37

commit 2037474dc0fd2b360452f2a15abcbe533b57ca37
Author: Carsten Haitzler (Rasterman) <[email protected]>
Date:   Thu Feb 9 22:06:16 2017 +0900

    vpath usage - simplify to bare minimum to make gustavo happy
    
    since these are only local path resolves, the do and wait are
    technically not needed. also remove any other tmp strings and use the
    vpath string resolving feature to avoid printfs/strjoins/cats etc.
    etc. as well.
---
 src/lib/efreet/efreet_base.c                    |  5 ++---
 src/lib/elementary/elm_config.c                 | 28 +++++++------------------
 src/lib/elput/elput_evdev.c                     | 11 +++-------
 src/modules/ecore_buffer/shm/ecore_buffer_shm.c | 15 ++++---------
 src/modules/evas/engines/wayland_shm/evas_shm.c | 16 +++++---------
 5 files changed, 21 insertions(+), 54 deletions(-)

diff --git a/src/lib/efreet/efreet_base.c b/src/lib/efreet/efreet_base.c
index 506d2e8..d510cde 100644
--- a/src/lib/efreet/efreet_base.c
+++ b/src/lib/efreet/efreet_base.c
@@ -311,9 +311,8 @@ efreet_dirs_init(void)
 #endif
 
     /* xdg_runtime_dir */
-    file_obj = efl_vpath_manager_fetch(EFL_VPATH_MANAGER_CLASS, "(:run:)/");
-    efl_vpath_file_do(file_obj);
-    efl_vpath_file_wait(file_obj);
+    file_obj = efl_vpath_manager_fetch(EFL_VPATH_MANAGER_CLASS,
+                                       "(:run:)/");
     xdg_runtime_dir = 
eina_stringshare_add(efl_vpath_file_result_get(file_obj));
     efl_del(file_obj);
 
diff --git a/src/lib/elementary/elm_config.c b/src/lib/elementary/elm_config.c
index 58dd95e..48330cd 100644
--- a/src/lib/elementary/elm_config.c
+++ b/src/lib/elementary/elm_config.c
@@ -615,9 +615,6 @@ _elm_config_user_dir_snprintf(char       *dst,
    va_list ap;
    Efl_Vpath_File *file_obj;
    static int use_xdg_config = -1;
-   const char elmdir[] = "elementary";
-   const char elmdotdir[] = ".elementary";
-   const char *path = NULL;
 
    if (use_xdg_config == -1)
      {
@@ -625,26 +622,15 @@ _elm_config_user_dir_snprintf(char       *dst,
         else use_xdg_config = 0;
      }
    if (use_xdg_config)
-     {
-        file_obj = efl_vpath_manager_fetch(EFL_VPATH_MANAGER_CLASS, 
"(:config:)/");
-        efl_vpath_file_do(file_obj);
-        efl_vpath_file_wait(file_obj);
-        path = efl_vpath_file_result_get(file_obj);
-        user_dir_len = eina_str_join_len
-          (dst, size, '/', path, strlen(path) - 1, elmdir, sizeof(elmdir) - 1);
-        efl_del(file_obj);
-     }
+     file_obj = efl_vpath_manager_fetch(EFL_VPATH_MANAGER_CLASS,
+                                        "(:config:)/elementary");
    else
-     {
-        file_obj = efl_vpath_manager_fetch(EFL_VPATH_MANAGER_CLASS, 
"(:home:)/");
-        efl_vpath_file_do(file_obj);
-        efl_vpath_file_wait(file_obj);
-        path = efl_vpath_file_result_get(file_obj);
-        user_dir_len = eina_str_join_len
-          (dst, size, '/', path, strlen(path) - 1, elmdotdir, 
sizeof(elmdotdir) - 1);
-        efl_del(file_obj);
-     }
+     file_obj = efl_vpath_manager_fetch(EFL_VPATH_MANAGER_CLASS,
+                                        "(:home:)/.elementary");
+   eina_strlcpy(dst, efl_vpath_file_result_get(file_obj), size);
+   efl_del(file_obj);
 
+   user_dir_len = strlen(dst);
    off = user_dir_len + 1;
    if (off >= size) return off;
    dst[user_dir_len] = '/';
diff --git a/src/lib/elput/elput_evdev.c b/src/lib/elput/elput_evdev.c
index 8067f24..e29600c 100644
--- a/src/lib/elput/elput_evdev.c
+++ b/src/lib/elput/elput_evdev.c
@@ -60,21 +60,16 @@ _keyboard_modifiers_update(Elput_Keyboard *kbd, Elput_Seat 
*seat)
 static int
 _keyboard_fd_get(off_t size)
 {
-   const char *path;
    Eina_Tmpstr *fullname;
    long flags;
    int fd = 0;
-   char tmp[PATH_MAX];
    Efl_Vpath_File *file_obj;
 
-   file_obj = efl_vpath_manager_fetch(EFL_VPATH_MANAGER_CLASS, "(:run:)/");
-   efl_vpath_file_do(file_obj);
-   efl_vpath_file_wait(file_obj);
-   path = efl_vpath_file_result_get(file_obj);
-   snprintf(tmp, sizeof(tmp), "%s/elput-keymap-XXXXXX", path);
+   file_obj = efl_vpath_manager_fetch(EFL_VPATH_MANAGER_CLASS,
+                                      "(:run:)/elput-keymap-XXXXXX");
+   fd = eina_file_mkstemp(efl_vpath_file_result_get(file_obj), &fullname);
    efl_del(file_obj);
 
-   fd = eina_file_mkstemp(tmp, &fullname);
    if (fd < 0) return -1;
 
    flags = fcntl(fd, F_GETFD);
diff --git a/src/modules/ecore_buffer/shm/ecore_buffer_shm.c 
b/src/modules/ecore_buffer/shm/ecore_buffer_shm.c
index be270a9..4a36c72 100644
--- a/src/modules/ecore_buffer/shm/ecore_buffer_shm.c
+++ b/src/modules/ecore_buffer/shm/ecore_buffer_shm.c
@@ -54,8 +54,6 @@ _ecore_buffer_shm_buffer_alloc(Ecore_Buffer_Module_Data 
bmdata, int width, int h
 {
    Ecore_Buffer_Shm_Data* b;
    char *name;
-   static const char tmp[] = "ecore-buffer-shared-XXXXXX";
-   const char *path;
    int fd, size, page_size;
    Efl_Vpath_File *file_obj;
 
@@ -70,16 +68,11 @@ _ecore_buffer_shm_buffer_alloc(Ecore_Buffer_Module_Data 
bmdata, int width, int h
    b->size = page_size * (((b->stride * b->h) + (page_size - 1)) / page_size);
    b->am_owner = EINA_TRUE;
 
-   file_obj = efl_vpath_manager_fetch(EFL_VPATH_MANAGER_CLASS, "(:run:)/");
-   efl_vpath_file_do(file_obj);
-   efl_vpath_file_wait(file_obj);
-   path = efl_vpath_file_result_get(file_obj);
-   size = strlen(path) + sizeof(tmp);
-   name = malloc(size);
-   if (!name) goto err;
-   strcpy(name, path);
-   strcat(name, tmp);
+   file_obj = efl_vpath_manager_fetch(EFL_VPATH_MANAGER_CLASS,
+                                      "(:run:)/ecore-buffer-shared-XXXXXX");
+   name = strdup(efl_vpath_file_result_get(file_obj));
    efl_del(file_obj);
+   if (!name) goto err;
 
    fd = mkostemp(name, O_CLOEXEC);
    if (fd < 0) goto err_fd;
diff --git a/src/modules/evas/engines/wayland_shm/evas_shm.c 
b/src/modules/evas/engines/wayland_shm/evas_shm.c
index 05c7ec3..3b9e7a5 100644
--- a/src/modules/evas/engines/wayland_shm/evas_shm.c
+++ b/src/modules/evas/engines/wayland_shm/evas_shm.c
@@ -82,8 +82,6 @@ static struct wl_shm_pool *
 _shm_pool_make(struct wl_shm *shm, int size, void **data)
 {
    struct wl_shm_pool *pool;
-   static const char tmp[] = "evas-wayland_shm-XXXXXX";
-   const char *path;
    char *name;
    int fd = 0;
    Eina_Tmpstr *fullname;
@@ -95,15 +93,11 @@ _shm_pool_make(struct wl_shm *shm, int size, void **data)
    if (!shm) return NULL;
 
    /* create tmp file name */
-   file_obj = efl_vpath_manager_fetch(EFL_VPATH_MANAGER_CLASS, "(:run:)/");
-   efl_vpath_file_do(file_obj);
-   efl_vpath_file_wait(file_obj);
-   path = efl_vpath_file_result_get(file_obj);
-   if ((name = malloc(strlen(path) + sizeof(tmp)))) strcpy(name, path);
-   if (!name) return NULL;
-   strcat(name, tmp);
-
-   fd = eina_file_mkstemp(name, &fullname);
+   file_obj = efl_vpath_manager_fetch(EFL_VPATH_MANAGER_CLASS,
+                                      "(:run:)/evas-wayland_shm-XXXXXX");
+   fd = eina_file_mkstemp(efl_vpath_file_result_get(file_obj), &fullname);
+   efl_del(file_obj);
+
    if (fd < 0)
    /* try to create tmp file */
    /* if ((fd = mkstemp(name)) < 0) */

-- 


Reply via email to