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
This commit is contained in:
Daniel Kolesa 2016-06-15 16:35:45 +01:00
parent 210a740cc2
commit a7c6086c42
8 changed files with 7 additions and 10 deletions

View File

@ -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;

View File

@ -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
/**

View File

@ -5,4 +5,4 @@
#include "Eo.h"
#include "eo_class.eo.c"
#include "eo_interface.eo.c"

View File

@ -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;

View File

@ -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.

View File

@ -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]]

View File

@ -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]]

View File

@ -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]]