cedric pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=9f35c74d9d66181ff609e325d23796efc823e95e

commit 9f35c74d9d66181ff609e325d23796efc823e95e
Author: Cedric BAIL <cedric.b...@free.fr>
Date:   Fri May 31 10:43:32 2019 -0700

    evas: break Evas_Loader API and introduce a version numbering for 
Image_Loader.
    
    Reviewed-by: Mike Blumenkrantz <michael.blumenkra...@gmail.com>
    Reviewed-by: Hermet Park <hermetp...@gmail.com>
    Differential Revision: https://phab.enlightenment.org/D9099
---
 src/lib/evas/Evas_Loader.h                                       | 5 ++++-
 src/lib/evas/common/evas_image_load.c                            | 2 +-
 src/modules/evas/image_loaders/bmp/evas_image_load_bmp.c         | 1 +
 src/modules/evas/image_loaders/dds/evas_image_load_dds.c         | 1 +
 src/modules/evas/image_loaders/eet/evas_image_load_eet.c         | 1 +
 src/modules/evas/image_loaders/generic/evas_image_load_generic.c | 1 +
 src/modules/evas/image_loaders/gif/evas_image_load_gif.c         | 3 ++-
 src/modules/evas/image_loaders/ico/evas_image_load_ico.c         | 1 +
 src/modules/evas/image_loaders/jp2k/evas_image_load_jp2k.c       | 1 +
 src/modules/evas/image_loaders/jpeg/evas_image_load_jpeg.c       | 1 +
 src/modules/evas/image_loaders/pmaps/evas_image_load_pmaps.c     | 1 +
 src/modules/evas/image_loaders/png/evas_image_load_png.c         | 1 +
 src/modules/evas/image_loaders/psd/evas_image_load_psd.c         | 1 +
 src/modules/evas/image_loaders/tga/evas_image_load_tga.c         | 1 +
 src/modules/evas/image_loaders/tgv/evas_image_load_tgv.c         | 1 +
 src/modules/evas/image_loaders/tiff/evas_image_load_tiff.c       | 1 +
 src/modules/evas/image_loaders/wbmp/evas_image_load_wbmp.c       | 1 +
 src/modules/evas/image_loaders/webp/evas_image_load_webp.c       | 1 +
 src/modules/evas/image_loaders/xpm/evas_image_load_xpm.c         | 1 +
 19 files changed, 23 insertions(+), 3 deletions(-)

diff --git a/src/lib/evas/Evas_Loader.h b/src/lib/evas/Evas_Loader.h
index 787df4e81f..e60647d6f1 100644
--- a/src/lib/evas/Evas_Loader.h
+++ b/src/lib/evas/Evas_Loader.h
@@ -70,7 +70,7 @@ extern "C" {
 #endif
 
 /* the module api version */
-#define EVAS_MODULE_API_VERSION 2
+#define EVAS_MODULE_API_VERSION 3
 
 /* the module types */
 typedef enum _Evas_Module_Type
@@ -186,8 +186,11 @@ typedef Emile_Colorspace Evas_Colorspace; /**< Colorspaces 
for pixel data suppor
 #define EVAS_COLORSPACE_RGBA_S3TC_DXT4 EMILE_COLORSPACE_RGBA_S3TC_DXT4
 #define EVAS_COLORSPACE_RGBA_S3TC_DXT5 EMILE_COLORSPACE_RGBA_S3TC_DXT5
 
+#define EVAS_IMAGE_LOAD_VERSION 1
+
 struct _Evas_Image_Load_Func
 {
+  int       version;
   void     *(*file_open) (Eina_File *f, Eina_Stringshare *key,
                          Evas_Image_Load_Opts *opts,
                          Evas_Image_Animated *animated,
diff --git a/src/lib/evas/common/evas_image_load.c 
b/src/lib/evas/common/evas_image_load.c
index 7d4ca66790..c0121391b9 100644
--- a/src/lib/evas/common/evas_image_load.c
+++ b/src/lib/evas/common/evas_image_load.c
@@ -183,7 +183,7 @@ _evas_image_file_header(Evas_Module *em, Image_Entry *ie, 
int *error)
    evas_image_load_func = em->functions;
    evas_module_use(em);
    *error = EVAS_LOAD_ERROR_NONE;
-   if (evas_image_load_func)
+   if (evas_image_load_func && evas_image_load_func->version == 
EVAS_IMAGE_LOAD_VERSION)
      {
         Evas_Image_Property property;
         const char *file;
diff --git a/src/modules/evas/image_loaders/bmp/evas_image_load_bmp.c 
b/src/modules/evas/image_loaders/bmp/evas_image_load_bmp.c
index 43dac5b06c..c29c0c65c8 100644
--- a/src/modules/evas/image_loaders/bmp/evas_image_load_bmp.c
+++ b/src/modules/evas/image_loaders/bmp/evas_image_load_bmp.c
@@ -1429,6 +1429,7 @@ evas_image_load_file_data_bmp(void *loader_data,
 
 static Evas_Image_Load_Func evas_image_load_bmp_func =
 {
+  EVAS_IMAGE_LOAD_VERSION,
   evas_image_load_file_open_bmp,
   evas_image_load_file_close_bmp,
   evas_image_load_file_head_bmp,
diff --git a/src/modules/evas/image_loaders/dds/evas_image_load_dds.c 
b/src/modules/evas/image_loaders/dds/evas_image_load_dds.c
index f3b133c7c9..705ed3f2ba 100644
--- a/src/modules/evas/image_loaders/dds/evas_image_load_dds.c
+++ b/src/modules/evas/image_loaders/dds/evas_image_load_dds.c
@@ -529,6 +529,7 @@ on_error:
 
 Evas_Image_Load_Func evas_image_load_dds_func =
 {
+  EVAS_IMAGE_LOAD_VERSION,
   evas_image_load_file_open_dds,
   evas_image_load_file_close_dds,
   evas_image_load_file_head_dds,
diff --git a/src/modules/evas/image_loaders/eet/evas_image_load_eet.c 
b/src/modules/evas/image_loaders/eet/evas_image_load_eet.c
index 9ff212f8eb..4ff20890f5 100644
--- a/src/modules/evas/image_loaders/eet/evas_image_load_eet.c
+++ b/src/modules/evas/image_loaders/eet/evas_image_load_eet.c
@@ -224,6 +224,7 @@ evas_image_load_file_data_eet(void *loader_data,
 
 Evas_Image_Load_Func evas_image_load_eet_func =
 {
+  EVAS_IMAGE_LOAD_VERSION,
   evas_image_load_file_open_eet,
   evas_image_load_file_close_eet,
   evas_image_load_file_head_eet,
diff --git a/src/modules/evas/image_loaders/generic/evas_image_load_generic.c 
b/src/modules/evas/image_loaders/generic/evas_image_load_generic.c
index ec4917ffc0..4bd8528414 100644
--- a/src/modules/evas/image_loaders/generic/evas_image_load_generic.c
+++ b/src/modules/evas/image_loaders/generic/evas_image_load_generic.c
@@ -443,6 +443,7 @@ evas_image_load_file_data_generic(void *loader_data,
 
 Evas_Image_Load_Func evas_image_load_generic_func =
 {
+  EVAS_IMAGE_LOAD_VERSION,
   evas_image_load_file_open_generic,
   evas_image_load_file_close_generic,
   evas_image_load_file_head_generic,
diff --git a/src/modules/evas/image_loaders/gif/evas_image_load_gif.c 
b/src/modules/evas/image_loaders/gif/evas_image_load_gif.c
index 737e3fb7be..2928ff7869 100644
--- a/src/modules/evas/image_loaders/gif/evas_image_load_gif.c
+++ b/src/modules/evas/image_loaders/gif/evas_image_load_gif.c
@@ -905,9 +905,10 @@ evas_image_load_file_close_gif2(void *loader_data)
 // general module delcaration stuff
 static Evas_Image_Load_Func evas_image_load_gif_func =
 {
+  EVAS_IMAGE_LOAD_VERSION,
   evas_image_load_file_open_gif2,
   evas_image_load_file_close_gif2,
-  evas_image_load_file_head_gif2, 
+  evas_image_load_file_head_gif2,
   evas_image_load_file_data_gif2,
   evas_image_load_frame_duration_gif2,
   EINA_TRUE,
diff --git a/src/modules/evas/image_loaders/ico/evas_image_load_ico.c 
b/src/modules/evas/image_loaders/ico/evas_image_load_ico.c
index 520ef06aa8..efdad46808 100644
--- a/src/modules/evas/image_loaders/ico/evas_image_load_ico.c
+++ b/src/modules/evas/image_loaders/ico/evas_image_load_ico.c
@@ -792,6 +792,7 @@ evas_image_load_file_data_ico(void *loader_data,
 
 static Evas_Image_Load_Func evas_image_load_ico_func =
 {
+  EVAS_IMAGE_LOAD_VERSION,
   evas_image_load_file_open_ico,
   evas_image_load_file_close_ico,
   evas_image_load_file_head_ico,
diff --git a/src/modules/evas/image_loaders/jp2k/evas_image_load_jp2k.c 
b/src/modules/evas/image_loaders/jp2k/evas_image_load_jp2k.c
index dd9af05acf..50ab355f93 100644
--- a/src/modules/evas/image_loaders/jp2k/evas_image_load_jp2k.c
+++ b/src/modules/evas/image_loaders/jp2k/evas_image_load_jp2k.c
@@ -462,6 +462,7 @@ evas_image_load_file_data_jp2k(void *loader_data,
 
 static Evas_Image_Load_Func evas_image_load_jp2k_func =
 {
+  EVAS_IMAGE_LOAD_VERSION,
   evas_image_load_file_open_jp2k,
   evas_image_load_file_close_jp2k,
   evas_image_load_file_head_jp2k,
diff --git a/src/modules/evas/image_loaders/jpeg/evas_image_load_jpeg.c 
b/src/modules/evas/image_loaders/jpeg/evas_image_load_jpeg.c
index c80416aea0..ca712568ff 100644
--- a/src/modules/evas/image_loaders/jpeg/evas_image_load_jpeg.c
+++ b/src/modules/evas/image_loaders/jpeg/evas_image_load_jpeg.c
@@ -116,6 +116,7 @@ evas_image_load_file_data_jpeg(void *loader_data,
 
 Evas_Image_Load_Func evas_image_load_jpeg_func =
 {
+  EVAS_IMAGE_LOAD_VERSION,
   evas_image_load_file_open_jpeg,
   evas_image_load_file_close_jpeg,
   evas_image_load_file_head_jpeg,
diff --git a/src/modules/evas/image_loaders/pmaps/evas_image_load_pmaps.c 
b/src/modules/evas/image_loaders/pmaps/evas_image_load_pmaps.c
index b9c383c90b..66deda1d74 100644
--- a/src/modules/evas/image_loaders/pmaps/evas_image_load_pmaps.c
+++ b/src/modules/evas/image_loaders/pmaps/evas_image_load_pmaps.c
@@ -551,6 +551,7 @@ pmaps_buffer_plain_bw_get(Pmaps_Buffer *b, DATA32 *val)
 
 /* external functions */
 Evas_Image_Load_Func evas_image_load_pmaps_func = {
+   EVAS_IMAGE_LOAD_VERSION,
    evas_image_load_file_open_pmaps,
    evas_image_load_file_close_pmaps,
    evas_image_load_file_head_pmaps,
diff --git a/src/modules/evas/image_loaders/png/evas_image_load_png.c 
b/src/modules/evas/image_loaders/png/evas_image_load_png.c
index 087c908b63..80f7744b12 100644
--- a/src/modules/evas/image_loaders/png/evas_image_load_png.c
+++ b/src/modules/evas/image_loaders/png/evas_image_load_png.c
@@ -556,6 +556,7 @@ evas_image_load_file_data_png(void *loader_data,
 
 static Evas_Image_Load_Func evas_image_load_png_func =
 {
+  EVAS_IMAGE_LOAD_VERSION,
   evas_image_load_file_open_png,
   evas_image_load_file_close_png,
   evas_image_load_file_head_png,
diff --git a/src/modules/evas/image_loaders/psd/evas_image_load_psd.c 
b/src/modules/evas/image_loaders/psd/evas_image_load_psd.c
index d8f15b3dd9..afd54b58c1 100644
--- a/src/modules/evas/image_loaders/psd/evas_image_load_psd.c
+++ b/src/modules/evas/image_loaders/psd/evas_image_load_psd.c
@@ -882,6 +882,7 @@ get_compressed_channels_length(PSD_Header *head,
 }
 
 static const Evas_Image_Load_Func evas_image_load_psd_func = {
+  EVAS_IMAGE_LOAD_VERSION,
   evas_image_load_file_open_psd,
   evas_image_load_file_close_psd,
   evas_image_load_file_head_psd,
diff --git a/src/modules/evas/image_loaders/tga/evas_image_load_tga.c 
b/src/modules/evas/image_loaders/tga/evas_image_load_tga.c
index 344c363ed2..4efb673805 100644
--- a/src/modules/evas/image_loaders/tga/evas_image_load_tga.c
+++ b/src/modules/evas/image_loaders/tga/evas_image_load_tga.c
@@ -563,6 +563,7 @@ evas_image_load_file_data_tga(void *loader_data,
 
 static Evas_Image_Load_Func evas_image_load_tga_func =
 {
+  EVAS_IMAGE_LOAD_VERSION,
   evas_image_load_file_open_tga,
   evas_image_load_file_close_tga,
   evas_image_load_file_head_tga,
diff --git a/src/modules/evas/image_loaders/tgv/evas_image_load_tgv.c 
b/src/modules/evas/image_loaders/tgv/evas_image_load_tgv.c
index 72da89af1e..e71773d899 100644
--- a/src/modules/evas/image_loaders/tgv/evas_image_load_tgv.c
+++ b/src/modules/evas/image_loaders/tgv/evas_image_load_tgv.c
@@ -105,6 +105,7 @@ evas_image_load_file_data_tgv(void *loader_data,
 
 Evas_Image_Load_Func evas_image_load_tgv_func =
 {
+  EVAS_IMAGE_LOAD_VERSION,
   evas_image_load_file_open_tgv,
   evas_image_load_file_close_tgv,
   evas_image_load_file_head_tgv,
diff --git a/src/modules/evas/image_loaders/tiff/evas_image_load_tiff.c 
b/src/modules/evas/image_loaders/tiff/evas_image_load_tiff.c
index e07206b51e..2603221911 100644
--- a/src/modules/evas/image_loaders/tiff/evas_image_load_tiff.c
+++ b/src/modules/evas/image_loaders/tiff/evas_image_load_tiff.c
@@ -332,6 +332,7 @@ evas_image_load_file_data_tiff(void *loader_data,
 
 static Evas_Image_Load_Func evas_image_load_tiff_func =
 {
+  EVAS_IMAGE_LOAD_VERSION,
   evas_image_load_file_open_tiff,
   evas_image_load_file_close_tiff,
   evas_image_load_file_head_tiff,
diff --git a/src/modules/evas/image_loaders/wbmp/evas_image_load_wbmp.c 
b/src/modules/evas/image_loaders/wbmp/evas_image_load_wbmp.c
index af539a041b..e14f5a4902 100644
--- a/src/modules/evas/image_loaders/wbmp/evas_image_load_wbmp.c
+++ b/src/modules/evas/image_loaders/wbmp/evas_image_load_wbmp.c
@@ -181,6 +181,7 @@ evas_image_load_file_data_wbmp(void *loader_data,
 
 static Evas_Image_Load_Func evas_image_load_wbmp_func =
 {
+   EVAS_IMAGE_LOAD_VERSION,
    evas_image_load_file_open_wbmp,
    evas_image_load_file_close_wbmp,
    evas_image_load_file_head_wbmp,
diff --git a/src/modules/evas/image_loaders/webp/evas_image_load_webp.c 
b/src/modules/evas/image_loaders/webp/evas_image_load_webp.c
index e3f97bb77a..9d39b225a8 100644
--- a/src/modules/evas/image_loaders/webp/evas_image_load_webp.c
+++ b/src/modules/evas/image_loaders/webp/evas_image_load_webp.c
@@ -112,6 +112,7 @@ evas_image_load_file_data_webp(void *loader_data,
 
 static Evas_Image_Load_Func evas_image_load_webp_func =
 {
+  EVAS_IMAGE_LOAD_VERSION,
   evas_image_load_file_open_webp,
   evas_image_load_file_close_webp,
   evas_image_load_file_head_webp,
diff --git a/src/modules/evas/image_loaders/xpm/evas_image_load_xpm.c 
b/src/modules/evas/image_loaders/xpm/evas_image_load_xpm.c
index 4bf08b5a8d..3b5e682139 100644
--- a/src/modules/evas/image_loaders/xpm/evas_image_load_xpm.c
+++ b/src/modules/evas/image_loaders/xpm/evas_image_load_xpm.c
@@ -2214,6 +2214,7 @@ evas_image_load_file_data_xpm(void *loader_data,
 
 static Evas_Image_Load_Func evas_image_load_xpm_func =
 {
+  EVAS_IMAGE_LOAD_VERSION,
   evas_image_load_file_open_xpm,
   evas_image_load_file_close_xpm,
   evas_image_load_file_head_xpm,

-- 


Reply via email to