summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorDaniel Kolesa <d.kolesa@samsung.com>2019-08-01 16:47:52 +0200
committerDaniel Kolesa <d.kolesa@samsung.com>2019-08-01 16:55:31 +0200
commit1bcca58d826a2d8fcd88b529b8e5863c6f54ec47 (patch)
tree5c5db53ccd118aa175b45949b791189b32b73a5a /src/lib
parentadaea4170af0268f7d2b69cba4c62bbc9a7396a9 (diff)
eolian: disallow ptr() in containers in stable API
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/efl/interfaces/efl_gfx_types.eot4
-rw-r--r--src/lib/eolian/database_validate.c7
2 files changed, 9 insertions, 2 deletions
diff --git a/src/lib/efl/interfaces/efl_gfx_types.eot b/src/lib/efl/interfaces/efl_gfx_types.eot
index 4792820083..64bde5a6c7 100644
--- a/src/lib/efl/interfaces/efl_gfx_types.eot
+++ b/src/lib/efl/interfaces/efl_gfx_types.eot
@@ -161,8 +161,8 @@ enum Efl.Gfx.Change_Flag
161struct Efl.Gfx.Event.Render_Post 161struct Efl.Gfx.Event.Render_Post
162{ 162{
163 [[Data sent along a "render,post" event, after a frame has been rendered.]] 163 [[Data sent along a "render,post" event, after a frame has been rendered.]]
164 updated_area: list<ptr(Eina.Rect)>; [[A list of rectangles that were 164 updated_area: list<Eina.Rect>; [[A list of rectangles that were
165 updated in the canvas.]] 165 updated in the canvas.]]
166} 166}
167 167
168enum Efl.Gfx.Hint_Aspect 168enum Efl.Gfx.Hint_Aspect
diff --git a/src/lib/eolian/database_validate.c b/src/lib/eolian/database_validate.c
index ff36d71a3e..c5945724ef 100644
--- a/src/lib/eolian/database_validate.c
+++ b/src/lib/eolian/database_validate.c
@@ -255,6 +255,13 @@ _validate_type(Validate_State *vals, Eolian_Type *tp)
255 /* validate types in brackets so transitive fields get written */ 255 /* validate types in brackets so transitive fields get written */
256 while (itp) 256 while (itp)
257 { 257 {
258 if (vals->stable && itp->is_ptr)
259 {
260 _eo_parser_log(&itp->base,
261 "pointer types not allowed in '%s' in stable context",
262 tp->base.name);
263 return EINA_FALSE;
264 }
258 if (!_validate_type(vals, itp)) 265 if (!_validate_type(vals, itp))
259 return EINA_FALSE; 266 return EINA_FALSE;
260 itp = itp->next_type; 267 itp = itp->next_type;