diff --git a/ChangeLog b/ChangeLog index d81ed9f425..c0f8736309 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2013-06-04 Cedric Bail + + * Evas: correctly detect if loader support asynchronous preloading. + 2013-06-03 Ederson Desouza * Add -1.0 value to text ellipsis -- for not ellipsizing it at all. diff --git a/NEWS b/NEWS index f0700171fe..9fdf587c2d 100644 --- a/NEWS +++ b/NEWS @@ -317,4 +317,4 @@ Fixes: * Fix evas gl engine to work in 16bpp nicely. * Fix native surface to be more anal about depth matching. * Fix eeze sensors to not segv on shutdown - + * Evas: correctly detect if a loader support asynchronous preloading. diff --git a/src/lib/evas/cache/evas_cache_image.c b/src/lib/evas/cache/evas_cache_image.c index 377e0fa287..8f2b6b0947 100644 --- a/src/lib/evas/cache/evas_cache_image.c +++ b/src/lib/evas/cache/evas_cache_image.c @@ -343,8 +343,8 @@ _evas_cache_image_async_heavy(void *data) current->channel++; cache = current->cache; - if ((!current->flags.loaded) && - ((Evas_Image_Load_Func*) current->info.module)->threadable) + if ((!current->flags.loaded) && + current->info.loader->threadable) { error = cache->func.load(current); if (cache->func.debug) cache->func.debug("load", current); diff --git a/src/lib/evas/common/evas_image_load.c b/src/lib/evas/common/evas_image_load.c index 006a7248a6..7d0d6712f6 100644 --- a/src/lib/evas/common/evas_image_load.c +++ b/src/lib/evas/common/evas_image_load.c @@ -345,9 +345,9 @@ evas_common_load_rgba_image_module_from_file(Image_Entry *ie) em->definition->name : "", file); - ie->info.module = (void*) em; + ie->info.module = em; ie->info.loader = (void*) em ? em->functions : NULL; - evas_module_ref((Evas_Module*) ie->info.module); + evas_module_ref(ie->info.module); return ret; } @@ -388,7 +388,7 @@ evas_common_load_rgba_image_data_from_file(Image_Entry *ie) // printf("load data [%p] %s %s\n", ie, ie->file, ie->key); evas_image_load_func = ie->info.loader; - evas_module_use((Evas_Module*) ie->info.module); + evas_module_use(ie->info.module); if (!ie->f) return EVAS_LOAD_ERROR_DOES_NOT_EXIST; @@ -412,7 +412,7 @@ evas_common_load_rgba_image_data_from_file(Image_Entry *ie) if (property.premul) evas_common_image_premul(ie); -// evas_module_unref((Evas_Module*) ie->info.module); +// evas_module_unref(ie->info.module); // ie->info.module = NULL; return ret; @@ -426,7 +426,7 @@ evas_common_load_rgba_image_frame_duration_from_file(Image_Entry *ie, const int if (!ie->info.module) return -1; evas_image_load_func = ie->info.loader; - evas_module_use((Evas_Module*) ie->info.module); + evas_module_use(ie->info.module); if (evas_image_load_func->frame_duration) { if (!ie->f) return -1; diff --git a/src/lib/evas/file/evas_module.c b/src/lib/evas/file/evas_module.c index 03ab41cf61..539ef5ec4f 100644 --- a/src/lib/evas/file/evas_module.c +++ b/src/lib/evas/file/evas_module.c @@ -4,9 +4,8 @@ #include -#include -#include -#include +#include "evas_common.h" +#include "evas_private.h" static Eina_Hash *evas_modules[4] = { diff --git a/src/lib/evas/include/evas_common.h b/src/lib/evas/include/evas_common.h index 611529b6c6..5cd65946de 100644 --- a/src/lib/evas/include/evas_common.h +++ b/src/lib/evas/include/evas_common.h @@ -347,6 +347,8 @@ extern EAPI int _evas_log_dom_global; /*****************************************************************************/ +#include "../file/evas_module.h" + typedef unsigned long long DATA64; typedef unsigned int DATA32; typedef unsigned short DATA16; @@ -593,8 +595,8 @@ struct _Image_Entry struct { - void *module; - void *loader; + Evas_Module *module; + Evas_Image_Load_Func *loader; } info; LK(lock);