evas: break Evas_Loader API and introduce a version numbering for Image_Loader.
authorCedric BAIL <cedric.bail@free.fr>
Fri, 31 May 2019 17:43:32 +0000 (10:43 -0700)
committerTaehyub Kim <taehyub.kim@samsung.com>
Wed, 17 Jul 2019 07:20:32 +0000 (16:20 +0900)
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Hermet Park <hermetpark@gmail.com>
Differential Revision: https://phab.enlightenment.org/D9099

19 files changed:
src/lib/evas/Evas_Loader.h
src/lib/evas/common/evas_image_load.c
src/modules/evas/image_loaders/bmp/evas_image_load_bmp.c
src/modules/evas/image_loaders/dds/evas_image_load_dds.c
src/modules/evas/image_loaders/eet/evas_image_load_eet.c
src/modules/evas/image_loaders/generic/evas_image_load_generic.c
src/modules/evas/image_loaders/gif/evas_image_load_gif.c
src/modules/evas/image_loaders/ico/evas_image_load_ico.c
src/modules/evas/image_loaders/jp2k/evas_image_load_jp2k.c
src/modules/evas/image_loaders/jpeg/evas_image_load_jpeg.c
src/modules/evas/image_loaders/pmaps/evas_image_load_pmaps.c
src/modules/evas/image_loaders/png/evas_image_load_png.c
src/modules/evas/image_loaders/psd/evas_image_load_psd.c
src/modules/evas/image_loaders/tga/evas_image_load_tga.c
src/modules/evas/image_loaders/tgv/evas_image_load_tgv.c
src/modules/evas/image_loaders/tiff/evas_image_load_tiff.c
src/modules/evas/image_loaders/wbmp/evas_image_load_wbmp.c
src/modules/evas/image_loaders/webp/evas_image_load_webp.c
src/modules/evas/image_loaders/xpm/evas_image_load_xpm.c

index dd620bf..a56ad4c 100644 (file)
@@ -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
@@ -189,8 +189,11 @@ typedef Emile_Colorspace Evas_Colorspace; /**< Colorspaces for pixel data suppor
 #define EVAS_COLORSPACE_PALETTE EFL_GFX_COLORSPACE_PALETTE
 //
 
+#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,
index 2d29aeb..535f055 100644 (file)
@@ -184,7 +184,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;
index 43dac5b..c29c0c6 100644 (file)
@@ -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,
index f3b133c..705ed3f 100644 (file)
@@ -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,
index 9ff212f..4ff2089 100644 (file)
@@ -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,
index ec4917f..4bd8528 100644 (file)
@@ -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,
index 737e3fb..2928ff7 100644 (file)
@@ -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,
index 520ef06..efdad46 100644 (file)
@@ -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,
index dd9af05..50ab355 100644 (file)
@@ -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,
index c80416a..ca71256 100644 (file)
@@ -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,
index b9c383c..66deda1 100644 (file)
@@ -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,
index 529565a..332bc78 100644 (file)
@@ -588,6 +588,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,
index d8f15b3..afd54b5 100644 (file)
@@ -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,
index 344c363..4efb673 100644 (file)
@@ -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,
index 72da89a..e71773d 100644 (file)
@@ -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,
index e07206b..2603221 100644 (file)
@@ -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,
index af539a0..e14f5a4 100644 (file)
@@ -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,
index e3f97bb..9d39b22 100644 (file)
@@ -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,
index 4bf08b5..3b5e682 100644 (file)
@@ -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,