q66 pushed a commit to branch master.

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

commit a7c6086c428ad23bf883b3459d3ea9f06e680180
Author: Daniel Kolesa <[email protected]>
Date:   Wed Jun 15 16:35:45 2016 +0100

    eolian: enable inheritance checks and fix EFL to build with them
    
    Somehow, there was code in the tree that apparently isn't tested at all, 
even
    once - if it was, the eo.c logic that performs inheritance checks would be
    triggered. I don't know how this could have happened (actually I do, it's
    Cedric's fault and he should be publicly shamed for it) but these checks
    make sure this will never happen again. But since the code itself appears
    to be untested, I don't know if there isn't any other brokenness in it.
    But that's beyond the scope of this change, so for now, let's make sure
    all our inheritance is at least formally correct.
    
    Also, enable eo_interface.eo generated code in Eo itself so that 
Eo.Interface
    can be used when inheriting.
    
    @fix
---
 src/lib/ector/ector_renderer_buffer.eo            | 2 +-
 src/lib/eo/Eo.h                                   | 1 +
 src/lib/eo/eo_class_class.c                       | 2 +-
 src/lib/eolian/eo_parser.c                        | 4 ----
 src/lib/evas/canvas/efl_canvas_surface.eo         | 2 +-
 src/lib/evas/canvas/efl_canvas_surface_tbm.eo     | 2 +-
 src/lib/evas/canvas/efl_canvas_surface_wayland.eo | 2 +-
 src/lib/evas/canvas/efl_canvas_surface_x11.eo     | 2 +-
 8 files changed, 7 insertions(+), 10 deletions(-)

diff --git a/src/lib/ector/ector_renderer_buffer.eo 
b/src/lib/ector/ector_renderer_buffer.eo
index bf36bd9..fd21bd7 100644
--- a/src/lib/ector/ector_renderer_buffer.eo
+++ b/src/lib/ector/ector_renderer_buffer.eo
@@ -1,4 +1,4 @@
-mixin Ector.Renderer.Buffer (Ector.Renderer, Efl.Gfx.Fill)
+mixin Ector.Renderer.Buffer (Eo.Interface, Ector.Renderer, Efl.Gfx.Fill)
 {
    [[Ector buffers have a default fill set to repeat]]
    eo_prefix: ector_renderer_buffer;
diff --git a/src/lib/eo/Eo.h b/src/lib/eo/Eo.h
index 4e5120d..d5274a9 100644
--- a/src/lib/eo/Eo.h
+++ b/src/lib/eo/Eo.h
@@ -171,6 +171,7 @@ typedef void (*Eo_Del_Intercept) (Eo *obj_id);
 
 #include "eo_override.eo.h"
 #include "eo_base.eo.h"
+#include "eo_interface.eo.h"
 #define EO_CLASS EO_BASE_CLASS
 
 /**
diff --git a/src/lib/eo/eo_class_class.c b/src/lib/eo/eo_class_class.c
index 7c5ca65..9d563f7 100644
--- a/src/lib/eo/eo_class_class.c
+++ b/src/lib/eo/eo_class_class.c
@@ -5,4 +5,4 @@
 #include "Eo.h"
 
 #include "eo_class.eo.c"
-
+#include "eo_interface.eo.c"
diff --git a/src/lib/eolian/eo_parser.c b/src/lib/eolian/eo_parser.c
index 1247e5e..8f92002 100644
--- a/src/lib/eolian/eo_parser.c
+++ b/src/lib/eolian/eo_parser.c
@@ -1855,7 +1855,6 @@ _inherit_dep(Eo_Lexer *ls, Eina_Strbuf *buf, Eina_Bool 
check_inherit,
      {
       case EOLIAN_CLASS_REGULAR:
       case EOLIAN_CLASS_ABSTRACT:
-#if 0
         if (dep->type != EOLIAN_CLASS_REGULAR && dep->type != 
EOLIAN_CLASS_ABSTRACT)
           {
              char ebuf[PATH_MAX];
@@ -1864,11 +1863,9 @@ _inherit_dep(Eo_Lexer *ls, Eina_Strbuf *buf, Eina_Bool 
check_inherit,
                       ls->tmp.kls->full_name, iname);
              eo_lexer_syntax_error(ls, ebuf);
           }
-#endif
         break;
       case EOLIAN_CLASS_MIXIN:
       case EOLIAN_CLASS_INTERFACE:
-#if 0
         if (dep->type != EOLIAN_CLASS_MIXIN && dep->type != 
EOLIAN_CLASS_INTERFACE)
           {
              char ebuf[PATH_MAX];
@@ -1877,7 +1874,6 @@ _inherit_dep(Eo_Lexer *ls, Eina_Strbuf *buf, Eina_Bool 
check_inherit,
                       ls->tmp.kls->full_name, iname);
              eo_lexer_syntax_error(ls, ebuf);
           }
-#endif
         break;
       default:
         break;
diff --git a/src/lib/evas/canvas/efl_canvas_surface.eo 
b/src/lib/evas/canvas/efl_canvas_surface.eo
index 91408f5..b393296 100644
--- a/src/lib/evas/canvas/efl_canvas_surface.eo
+++ b/src/lib/evas/canvas/efl_canvas_surface.eo
@@ -1,4 +1,4 @@
-mixin Efl.Canvas.Surface (Evas.Image)
+mixin Efl.Canvas.Surface (Eo.Interface, Evas.Image)
 {
    [[Native surfaces usually bound to an externally-managed buffer.
 
diff --git a/src/lib/evas/canvas/efl_canvas_surface_tbm.eo 
b/src/lib/evas/canvas/efl_canvas_surface_tbm.eo
index 7f814b5..0a9cd1d 100644
--- a/src/lib/evas/canvas/efl_canvas_surface_tbm.eo
+++ b/src/lib/evas/canvas/efl_canvas_surface_tbm.eo
@@ -1,4 +1,4 @@
-class Efl.Canvas.Surface.Tbm (Efl.Canvas.Surface)
+class Efl.Canvas.Surface.Tbm (Eo.Base, Efl.Canvas.Surface)
 {
    [[Native Tizen Buffer Manager surface for Efl canvas]]
 
diff --git a/src/lib/evas/canvas/efl_canvas_surface_wayland.eo 
b/src/lib/evas/canvas/efl_canvas_surface_wayland.eo
index 0da8e47..b689258 100644
--- a/src/lib/evas/canvas/efl_canvas_surface_wayland.eo
+++ b/src/lib/evas/canvas/efl_canvas_surface_wayland.eo
@@ -1,4 +1,4 @@
-class Efl.Canvas.Surface.Wayland (Efl.Canvas.Surface)
+class Efl.Canvas.Surface.Wayland (Eo.Base, Efl.Canvas.Surface)
 {
    [[Native Wayland surface for Efl canvas]]
 
diff --git a/src/lib/evas/canvas/efl_canvas_surface_x11.eo 
b/src/lib/evas/canvas/efl_canvas_surface_x11.eo
index 18d84a7..c5ed11e 100644
--- a/src/lib/evas/canvas/efl_canvas_surface_x11.eo
+++ b/src/lib/evas/canvas/efl_canvas_surface_x11.eo
@@ -5,7 +5,7 @@ struct Efl.Canvas.Surface.X11_Pixmap
    pixmap: ulong;  [[X11 Pixmap ID.]]
 }
 
-class Efl.Canvas.Surface.X11 (Efl.Canvas.Surface)
+class Efl.Canvas.Surface.X11 (Eo.Base, Efl.Canvas.Surface)
 {
    [[Native X11 surface for Efl canvas]]
 

-- 


Reply via email to