From c357e7fec6f1dac0225eb416439346a94bfce48c Mon Sep 17 00:00:00 2001 From: Cedric BAIL Date: Thu, 2 Jan 2020 15:41:36 -0800 Subject: [PATCH] eolian: enforce that list<> can only be used with @beta API. Reviewed-by: Daniel Kolesa Differential Revision: https://phab.enlightenment.org/D11050 --- src/lib/eolian/Eolian.h | 5 +++++ src/lib/eolian/database_validate.c | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/lib/eolian/Eolian.h b/src/lib/eolian/Eolian.h index db04216..7f19ff9 100644 --- a/src/lib/eolian/Eolian.h +++ b/src/lib/eolian/Eolian.h @@ -336,7 +336,12 @@ typedef enum EOLIAN_TYPE_BUILTIN_ARRAY, EOLIAN_TYPE_BUILTIN_FUTURE, EOLIAN_TYPE_BUILTIN_ITERATOR, +#ifdef EFL_BETA_API_SUPPORT EOLIAN_TYPE_BUILTIN_LIST, +#else + // Placeholder when using release API only. Done to prevent offseting the value below. + EOLIAN_TYPE_BUILTIN_BETA_PLACEHOLDER1, +#endif EOLIAN_TYPE_BUILTIN_ANY_VALUE, EOLIAN_TYPE_BUILTIN_ANY_VALUE_REF, diff --git a/src/lib/eolian/database_validate.c b/src/lib/eolian/database_validate.c index b1af218..1e7b072 100644 --- a/src/lib/eolian/database_validate.c +++ b/src/lib/eolian/database_validate.c @@ -400,9 +400,9 @@ _validate_type(Validate_State *vals, Eolian_Type *tp, Eina_Bool by_ref, int kwid = eo_lexer_keyword_str_to_id(tp->base.name); if (kwid > KW_void) tp->ownable = EINA_TRUE; - if (kwid == KW_hash && vals->stable) + if ((kwid == KW_hash || kwid == KW_list) && vals->stable) { - _eo_parser_log(&tp->base, "hashes not allowed in stable context"); + _eo_parser_log(&tp->base, "hashes and lists not allowed in stable context"); return EINA_FALSE; } Eolian_Type *itp = tp->base_type; -- 2.7.4