From: Carsten Haitzler (Rasterman) Date: Wed, 2 Sep 2015 10:20:04 +0000 (+0900) Subject: elm map - fix module load craziness loading all elm modules X-Git-Tag: v1.16.0-alpha1~103 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=9238f87e05ec891d87fb0080922df0f9e7e7e11f;p=platform%2Fupstream%2Felementary.git elm map - fix module load craziness loading all elm modules so elm map loads every module it can find in a recursive dir walk of all elm modules. this si nuts. this can accidentallly load OLD modules and thats a recipe for disaster. so check module arch dir aagainst module arch string to load the right version and be quiet if module doesn thave the right symbols - it's the wrong module type. @fix --- diff --git a/src/lib/elm_map.c b/src/lib/elm_map.c index b799c7e..8a31018 100644 --- a/src/lib/elm_map.c +++ b/src/lib/elm_map.c @@ -3451,6 +3451,8 @@ _source_mod_cb(Eina_Module *m, { const char *file; Elm_Map_Data *sd = data; + char *dir; + const char *subfile; Elm_Map_Module_Source_Name_Func name_cb; Elm_Map_Module_Tile_Url_Func tile_url_cb; @@ -3465,17 +3467,28 @@ _source_mod_cb(Eina_Module *m, EINA_SAFETY_ON_NULL_RETURN_VAL(data, EINA_FALSE); file = eina_module_file_get(m); - if (!eina_module_load(m)) + if (!file) return EINA_FALSE; + + dir = ecore_file_dir_get(file); + if (!dir) return EINA_FALSE; + subfile = ecore_file_file_get(dir); + if (!subfile) + { + free(dir); + return EINA_FALSE; + } + if (strcmp(subfile, MODULE_ARCH)) { - ERR("Could not load module \"%s\": %s", file, - eina_error_msg_get(eina_error_get())); + free(dir); return EINA_FALSE; } + free(dir); + + if (!eina_module_load(m)) return EINA_FALSE; + name_cb = eina_module_symbol_get(m, "map_module_source_name_get"); if ((!name_cb)) { - WRN("Could not find map module name from module \"%s\": %s", - file, eina_error_msg_get(eina_error_get())); eina_module_unload(m); return EINA_FALSE; }