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
This commit is contained in:
parent
b20526c32e
commit
cf3e5af90e
|
@ -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)
|
||||
{
|
||||
ERR("Could not load module \"%s\": %s", file,
|
||||
eina_error_msg_get(eina_error_get()));
|
||||
free(dir);
|
||||
return EINA_FALSE;
|
||||
}
|
||||
if (strcmp(subfile, MODULE_ARCH))
|
||||
{
|
||||
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;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue