evas: Fix crash with filters

Since the EO APIs are defined as weak symbols, invalid definitions of
EAPI lead to runtime crashes on non-public APIs. This is a fix following
a series of changes wrt. EAPI definitions.
This commit is contained in:
Jean-Philippe Andre 2017-08-16 14:06:51 +09:00
parent 4cd1257b1b
commit b3722c05f9
9 changed files with 79 additions and 15 deletions

View File

@ -648,6 +648,7 @@ modules/evas/engines/software_generic/evas_native_tbm.c \
modules/evas/engines/software_generic/evas_native_dmabuf.c \
modules/evas/engines/software_generic/evas_ector_software_buffer.c \
modules/evas/engines/software_generic/evas_native_common.h \
modules/evas/engines/software_generic/evas_ector_software.h \
$(GFX_FILTER_SW_FILES)
lib_evas_libevas_la_LIBADD +=
lib_evas_libevas_la_CPPFLAGS += -I$(top_srcdir)/src/lib/ector \
@ -843,6 +844,7 @@ GL_GENERIC_SOURCES = \
modules/evas/engines/gl_generic/evas_engine.c \
modules/evas/engines/gl_generic/Evas_Engine_GL_Generic.h \
modules/evas/engines/gl_generic/Evas_Engine_GL_Shared.h \
modules/evas/engines/gl_generic/evas_ector_gl.h \
modules/evas/engines/gl_generic/evas_ector_gl_buffer.c \
modules/evas/engines/gl_generic/evas_ector_gl_image_buffer.c \
modules/evas/engines/gl_generic/filters/gl_engine_filter.h \

View File

@ -0,0 +1,36 @@
#ifndef EVAS_ECTOR_GL_H
#define EVAS_ECTOR_GL_H
#undef EAPI
#ifdef _WIN32
# ifdef EFL_EVAS_BUILD
# ifdef DLL_EXPORT
# define EAPI __declspec(dllexport)
# else
# define EAPI
# endif /* ! DLL_EXPORT */
# else
# define EAPI __declspec(dllimport)
# endif /* ! EFL_EVAS_BUILD */
#else
# ifdef __GNUC__
# if __GNUC__ >= 4
# define EAPI __attribute__ ((visibility("default")))
# else
# define EAPI
# endif
# else
# define EAPI
# endif
#endif /* ! _WIN32 */
#include "evas_ector_buffer.eo.h"
#include "evas_ector_gl_buffer.eo.h"
#include "evas_ector_gl_image_buffer.eo.h"
#undef EAPI
#define EAPI
#endif /* ! EVAS_ECTOR_GL_H */

View File

@ -10,9 +10,7 @@
#include <software/Ector_Software.h>
#include <gl/Ector_GL.h>
#include "Evas_Engine_GL_Generic.h"
#include "evas_ector_buffer.eo.h"
#include "evas_ector_gl_buffer.eo.h"
#include "evas_ector_gl.h"
#include "evas_gl_private.h"
#define MY_CLASS EVAS_ECTOR_GL_BUFFER_CLASS

View File

@ -12,9 +12,7 @@
#include <software/Ector_Software.h>
#include <gl/Ector_GL.h>
#include "Evas_Engine_GL_Generic.h"
#include "evas_ector_buffer.eo.h"
#include "evas_ector_gl_image_buffer.eo.h"
#include "evas_ector_gl.h"
#include "evas_gl_private.h"
#define MY_CLASS EVAS_ECTOR_GL_IMAGE_BUFFER_CLASS

View File

@ -4,9 +4,7 @@
#include "software/Ector_Software.h"
#include "cairo/Ector_Cairo.h"
#include "gl/Ector_GL.h"
#include "evas_ector_buffer.eo.h"
#include "evas_ector_gl_buffer.eo.h"
#include "evas_ector_gl_image_buffer.eo.h"
#include "evas_ector_gl.h"
#include "filters/gl_engine_filter.h"
#if defined HAVE_DLSYM && ! defined _WIN32

View File

@ -3,7 +3,7 @@
#include "evas_filter_private.h"
#include "evas_gl_common.h"
#include "evas_ector_buffer.eo.h"
#include "../evas_ector_gl.h"
#include "../Evas_Engine_GL_Generic.h"
extern int _evas_engine_GL_log_dom;

View File

@ -0,0 +1,35 @@
#ifndef EVAS_ECTOR_GL_H
#define EVAS_ECTOR_GL_H
#undef EAPI
#ifdef _WIN32
# ifdef EFL_EVAS_BUILD
# ifdef DLL_EXPORT
# define EAPI __declspec(dllexport)
# else
# define EAPI
# endif /* ! DLL_EXPORT */
# else
# define EAPI __declspec(dllimport)
# endif /* ! EFL_EVAS_BUILD */
#else
# ifdef __GNUC__
# if __GNUC__ >= 4
# define EAPI __attribute__ ((visibility("default")))
# else
# define EAPI
# endif
# else
# define EAPI
# endif
#endif /* ! _WIN32 */
#include "evas_ector_buffer.eo.h"
#include "evas_ector_software_buffer.eo.h"
#undef EAPI
#define EAPI
#endif /* ! EVAS_ECTOR_GL_H */

View File

@ -5,9 +5,7 @@
#include <software/Ector_Software.h>
#include "evas_common_private.h"
#include "evas_private.h"
#include "evas_ector_buffer.eo.h"
#include "evas_ector_software_buffer.eo.h"
#include "evas_ector_software.h"
#define MY_CLASS EVAS_ECTOR_SOFTWARE_BUFFER_CLASS

View File

@ -9,8 +9,7 @@
#include <software/Ector_Software.h>
#include "cairo/Ector_Cairo.h"
#include "evas_ector_buffer.eo.h"
#include "evas_ector_software_buffer.eo.h"
#include "evas_ector_software.h"
#include "draw.h"
#include "evas_filter_private.h"