diff options
author | Daniel Kolesa <d.kolesa@samsung.com> | 2019-08-01 16:47:52 +0200 |
---|---|---|
committer | Daniel Kolesa <d.kolesa@samsung.com> | 2019-08-01 16:55:31 +0200 |
commit | 1bcca58d826a2d8fcd88b529b8e5863c6f54ec47 (patch) | |
tree | 5c5db53ccd118aa175b45949b791189b32b73a5a /src/lib | |
parent | adaea4170af0268f7d2b69cba4c62bbc9a7396a9 (diff) |
eolian: disallow ptr() in containers in stable API
Diffstat (limited to 'src/lib')
-rw-r--r-- | src/lib/efl/interfaces/efl_gfx_types.eot | 4 | ||||
-rw-r--r-- | src/lib/eolian/database_validate.c | 7 |
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 | |||
161 | struct Efl.Gfx.Event.Render_Post | 161 | struct 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 | ||
168 | enum Efl.Gfx.Hint_Aspect | 168 | enum 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; |