englebass pushed a commit to branch master.

commit e8ff0e7b688d80dece749f595ece3ed65f2ccc6a
Author: Sebastian Dransfeld <[email protected]>
Date:   Thu Jun 20 09:58:41 2013 +0200

    efreet: Init efreet_menu_prefix in init
    
    Makes efreet_menu_prefix access threadsafe
---
 src/lib/efreet/efreet_menu.c | 31 +++++++------------------------
 1 file changed, 7 insertions(+), 24 deletions(-)

diff --git a/src/lib/efreet/efreet_menu.c b/src/lib/efreet/efreet_menu.c
index b95d23f..bdd173a 100644
--- a/src/lib/efreet/efreet_menu.c
+++ b/src/lib/efreet/efreet_menu.c
@@ -164,8 +164,6 @@ static Eina_Hash *efreet_menu_filter_cbs = NULL;
 static Eina_Hash *efreet_menu_move_cbs = NULL;
 static Eina_Hash *efreet_menu_layout_cbs = NULL;
 
-static const char *efreet_menu_prefix_get(void);
-
 static Efreet_Menu_Internal *efreet_menu_by_name_find(Efreet_Menu_Internal 
*internal,
                                                     const char *name,
                                                     Efreet_Menu_Internal 
**parent);
@@ -385,6 +383,9 @@ efreet_menu_init(void)
         return 0;
     }
 
+    efreet_menu_prefix = getenv("XDG_MENU_PREFIX");
+    if (!efreet_menu_prefix) efreet_menu_prefix = "";
+
     efreet_menu_handle_cbs = eina_hash_string_superfast_new(NULL);
     efreet_menu_filter_cbs = eina_hash_string_superfast_new(NULL);
     efreet_menu_move_cbs = eina_hash_string_superfast_new(NULL);
@@ -524,7 +525,7 @@ efreet_menu_get(void)
 
     /* check the users config directory first */
     snprintf(menu, sizeof(menu), "%s/menus/%sapplications.menu",
-                        efreet_config_home_get(), efreet_menu_prefix_get());
+                        efreet_config_home_get(), efreet_menu_prefix);
     if (ecore_file_exists(menu))
         return efreet_menu_parse(menu);
 
@@ -533,7 +534,7 @@ efreet_menu_get(void)
     EINA_LIST_FOREACH(config_dirs, l, dir)
     {
         snprintf(menu, sizeof(menu), "%s/menus/%sapplications.menu",
-                                    dir, efreet_menu_prefix_get());
+                                    dir, efreet_menu_prefix);
         if (ecore_file_exists(menu))
             return efreet_menu_parse(menu);
     }
@@ -881,22 +882,6 @@ efreet_menu_internal_free(Efreet_Menu_Internal *internal)
 
 /**
  * @internal
- * @return Returns the XDG_MENU_PREFIX env variable or "" if none set
- * @brief Retrieves the XDG_MENU_PREFIX or "" if not set.
- */
-static const char *
-efreet_menu_prefix_get(void)
-{
-    if (efreet_menu_prefix) return efreet_menu_prefix;
-
-    efreet_menu_prefix = getenv("XDG_MENU_PREFIX");
-    if (!efreet_menu_prefix) efreet_menu_prefix = "";
-
-    return efreet_menu_prefix;
-}
-
-/**
- * @internal
  * @param menu The menu to populate
  * @param xml The xml dom tree to populate from
  * @return Returns 1 if this XML tree is valid, 0 otherwise
@@ -1595,18 +1580,16 @@ 
efreet_menu_handle_default_merge_dirs(Efreet_Menu_Internal *parent, Efreet_Xml *
 #ifndef STRICT_SPEC
     char parent_path[PATH_MAX];
 #endif
-    const char *prefix;
 
     if (!parent || !xml) return 0;
 
-    prefix = efreet_menu_prefix_get();
-    if (!strcmp(prefix, "gnome-") &&
+    if (!strcmp(efreet_menu_prefix, "gnome-") &&
             (!strcmp(parent->file.name, "gnome-applications.menu")))
     {
         p = alloca(sizeof("applications"));
         memcpy(p, "applications", sizeof("applications"));
     }
-    else if ((!strcmp(prefix, "kde-") &&
+    else if ((!strcmp(efreet_menu_prefix, "kde-") &&
             (!strcmp(parent->file.name, "kde-applications.menu"))))
     {
         p = alloca(sizeof("applications"));

-- 

------------------------------------------------------------------------------
This SF.net email is sponsored by Windows:

Build for Windows Store.

http://p.sf.net/sfu/windows-dev2dev

Reply via email to