summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCedric BAIL <cedric.bail@free.fr>2020-01-02 15:41:36 -0800
committerXavi Artigas <xavierartigas@yahoo.es>2020-01-29 16:28:00 +0100
commit5e93a878b701f95e43f4b2c4945e782eb4a1d9a6 (patch)
tree5e6c634031560ed7bc59dc535af739ed7ea24848
parentfdcc0053c609a021171db76a92a7ae36625154f6 (diff)
downloadefl-5e93a878b701f95e43f4b2c4945e782eb4a1d9a6.tar.gz
eolian: enforce that list<> can only be used with @beta API.
Reviewed-by: Daniel Kolesa <daniel@octaforge.org> Differential Revision: https://phab.enlightenment.org/D11050
-rw-r--r--src/lib/eolian/Eolian.h5
-rw-r--r--src/lib/eolian/database_validate.c4
2 files changed, 7 insertions, 2 deletions
diff --git a/src/lib/eolian/Eolian.h b/src/lib/eolian/Eolian.h
index db0421634a..7f19ff93e7 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 b1af2185ef..1e7b072c9d 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;