From 588f2dd9db091978f9041b5030608e026c10f492 Mon Sep 17 00:00:00 2001 From: Daniel Kolesa Date: Wed, 10 Sep 2014 16:46:34 +0100 Subject: [PATCH] eolian: property cleanup --- src/lib/eolian/database_fill.c | 20 +++++++++++--------- src/lib/eolian/eo_parser.c | 2 ++ 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/src/lib/eolian/database_fill.c b/src/lib/eolian/database_fill.c index d0081cddcc..33ef6ec631 100644 --- a/src/lib/eolian/database_fill.c +++ b/src/lib/eolian/database_fill.c @@ -61,29 +61,31 @@ _db_fill_property(Eolian_Class *cl, Eo_Class_Def *kls, Eo_Property_Def *prop) if (prop->get_accessor) { - if (kls->type == EOLIAN_CLASS_INTERFACE) - foo_id->get_virtual_pure = EINA_TRUE; foo_id->base = prop->base; prop->base.file = NULL; } if (prop->set_accessor) { - if (kls->type == EOLIAN_CLASS_INTERFACE) - foo_id->set_virtual_pure = EINA_TRUE; foo_id->set_base = prop->set_base; prop->set_base.file = NULL; } - - if (!prop->get_accessor && !prop->set_accessor) + else { - foo_id->type = EOLIAN_PROPERTY; - if (kls->type == EOLIAN_CLASS_INTERFACE) - foo_id->get_virtual_pure = foo_id->set_virtual_pure = EINA_TRUE; foo_id->base = prop->base; prop->base.file = NULL; } + if (kls->type == EOLIAN_CLASS_INTERFACE) + { + if (foo_id->type == EOLIAN_PROP_GET) + foo_id->get_virtual_pure = EINA_TRUE; + else if (foo_id->type == EOLIAN_PROP_SET) + foo_id->set_virtual_pure = EINA_TRUE; + if (foo_id->type == EOLIAN_PROPERTY) + foo_id->get_virtual_pure = foo_id->set_virtual_pure = EINA_TRUE; + } + cl->properties = eina_list_append(cl->properties, foo_id); } diff --git a/src/lib/eolian/eo_parser.c b/src/lib/eolian/eo_parser.c index 37d1b5cbb8..baf6d7c8a6 100644 --- a/src/lib/eolian/eo_parser.c +++ b/src/lib/eolian/eo_parser.c @@ -1392,6 +1392,8 @@ body: } end: check_match(ls, '}', '{', line, col); + if (!has_get && !has_set) + prop->type = EOLIAN_PROPERTY; } static void