diff options
author | Daniel Kolesa <d.kolesa@samsung.com> | 2019-09-20 17:46:56 +0200 |
---|---|---|
committer | Daniel Kolesa <d.kolesa@samsung.com> | 2019-09-20 17:47:43 +0200 |
commit | 7cbd08ee8c577d35699d937b56c95a65ffcbcd67 (patch) | |
tree | de15864295c7f6a49cae863a8da38e300eb5019c /src/lib | |
parent | 718f3cd49586ec6a0448977081e16cd647b06e68 (diff) | |
download | efl-7cbd08ee8c577d35699d937b56c95a65ffcbcd67.tar.gz |
eolian: string(share) is always const, allow in events out of box
Diffstat (limited to 'src/lib')
-rw-r--r-- | src/lib/eolian/database_validate.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/src/lib/eolian/database_validate.c b/src/lib/eolian/database_validate.c index 4ad105de0f..5706ace308 100644 --- a/src/lib/eolian/database_validate.c +++ b/src/lib/eolian/database_validate.c @@ -606,6 +606,7 @@ _validate_event(Validate_State *vals, Eolian_Event *event, Eina_Hash *nhash) _eo_parser_log(&tp->base, "pointers not allowed in events"); return _reset_stable(vals, was_stable, EINA_FALSE); } + int kwid = eo_lexer_keyword_str_to_id(tp->base.name); /* require containers to be const for now... * * this is FIXME, and decision wasn't reached before 1.22 @@ -613,10 +614,17 @@ _validate_event(Validate_State *vals, Eolian_Event *event, Eina_Hash *nhash) */ if (database_type_is_ownable(tp->base.unit, tp, EINA_FALSE)) { - if (!tp->is_const) + switch (kwid) { - _eo_parser_log(&tp->base, "event container types must be const"); - return _reset_stable(vals, was_stable, EINA_FALSE); + case KW_string: + case KW_stringshare: + break; + default: + if (!tp->is_const) + { + _eo_parser_log(&tp->base, "event container types must be const"); + return _reset_stable(vals, was_stable, EINA_FALSE); + } } } else if (tp->is_const) @@ -624,7 +632,6 @@ _validate_event(Validate_State *vals, Eolian_Event *event, Eina_Hash *nhash) _eo_parser_log(&tp->base, "event value types cannot be const"); return _reset_stable(vals, was_stable, EINA_FALSE); } - int kwid = eo_lexer_keyword_str_to_id(tp->base.name); /* containers are allowed but not iterators/lists */ if (kwid == KW_iterator || kwid == KW_list) { |