From 1ecaf6fa025137771ac05ca97b4f78c0b281d3d5 Mon Sep 17 00:00:00 2001 From: Jaehyun Cho Date: Mon, 9 Sep 2019 14:23:26 +0900 Subject: [PATCH 01/10] efl_ui_spotlight: fix warning of implicit conversion of floating point The result of integral division is converted into floating point. To fix the warning by assigning the result to integer variable, type cast is done. --- src/lib/elementary/efl_ui_spotlight_manager_scroll.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/elementary/efl_ui_spotlight_manager_scroll.c b/src/lib/elementary/efl_ui_spotlight_manager_scroll.c index e75c3f955f..e7179a259d 100644 --- a/src/lib/elementary/efl_ui_spotlight_manager_scroll.c +++ b/src/lib/elementary/efl_ui_spotlight_manager_scroll.c @@ -60,7 +60,7 @@ _apply_box_properties(Eo *obj, Efl_Ui_Spotlight_Manager_Scroll_Data *pd) double diff = i - current_pos; Efl_Gfx_Entity *elem = efl_pack_content_get(pd->container, i); - geometry.x = (group_pos.x + group_pos.w/2)-(pd->page_size.w/2 - diff*pd->page_size.w); + geometry.x = (int)((group_pos.x + group_pos.w/2)-(pd->page_size.w/2 - diff*pd->page_size.w)); if (!eina_rectangles_intersect(&geometry.rect, &group_pos.rect)) { efl_canvas_object_clipper_set(elem, pd->backclip); From b6d5ee9745cc3a71dc8529f8028aa8cfcd8e6c2a Mon Sep 17 00:00:00 2001 From: Jaehyun Cho Date: Mon, 9 Sep 2019 14:46:01 +0900 Subject: [PATCH 02/10] elm perf_test: fix warning of implicit conversion of floating point The result of integral division is converted into floating point. To fix the warning by assigning the result to Evas_Coord variable, type cast is done. --- src/bin/elementary/perf_test_01.c | 4 ++-- src/bin/elementary/perf_test_02.c | 4 ++-- src/bin/elementary/perf_test_03.c | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/bin/elementary/perf_test_01.c b/src/bin/elementary/perf_test_01.c index adb849fb80..d29f84813b 100644 --- a/src/bin/elementary/perf_test_01.c +++ b/src/bin/elementary/perf_test_01.c @@ -36,9 +36,9 @@ TST(01, tick) (Evas *e EINA_UNUSED, double f, Evas_Coord win_w, Evas_Coord win_h w = 5 + ((1.0 + cos((double)((f * 30.0) + (i * 10)))) * w0 * 2); h = 5 + ((1.0 + sin((double)((f * 40.0) + (i * 19)))) * h0 * 2); x = (win_w / 2) - (w / 2); - x += sin((double)((f * 50.0) + (i * 13))) * (w0 / 2); + x += (Evas_Coord)(sin((double)((f * 50.0) + (i * 13))) * (w0 / 2)); y = (win_h / 2) - (h / 2); - y += cos((double)((f * 45.0) + (i * 28))) * (h0 / 2); + y += (Evas_Coord)(cos((double)((f * 45.0) + (i * 28))) * (h0 / 2)); evas_object_geometry_set(o, x, y, w, h); } } diff --git a/src/bin/elementary/perf_test_02.c b/src/bin/elementary/perf_test_02.c index 2683cd116d..ac381c732a 100644 --- a/src/bin/elementary/perf_test_02.c +++ b/src/bin/elementary/perf_test_02.c @@ -36,9 +36,9 @@ TST(02, tick) (Evas *e EINA_UNUSED, double f, Evas_Coord win_w, Evas_Coord win_h w = 5 + ((1.0 + cos((double)((f * 30.0) + (i * 10)))) * w0 * 2); h = 5 + ((1.0 + sin((double)((f * 40.0) + (i * 19)))) * h0 * 2); x = (win_w / 2) - (w / 2); - x += sin((double)((f * 50.0) + (i * 13))) * (w0 / 2); + x += (Evas_Coord)(sin((double)((f * 50.0) + (i * 13))) * (w0 / 2)); y = (win_h / 2) - (h / 2); - y += cos((double)((f * 45.0) + (i * 28))) * (h0 / 2); + y += (Evas_Coord)(cos((double)((f * 45.0) + (i * 28))) * (h0 / 2)); evas_object_geometry_set(o, x, y, w, h); } } diff --git a/src/bin/elementary/perf_test_03.c b/src/bin/elementary/perf_test_03.c index 065bd6d984..6737bedac5 100644 --- a/src/bin/elementary/perf_test_03.c +++ b/src/bin/elementary/perf_test_03.c @@ -36,9 +36,9 @@ TST(03, tick) (Evas *e EINA_UNUSED, double f, Evas_Coord win_w, Evas_Coord win_h w = 5 + ((1.0 + cos((double)((f * 30.0) + (i * 10)))) * w0 * 2); h = 5 + ((1.0 + sin((double)((f * 40.0) + (i * 19)))) * h0 * 2); x = (win_w / 2) - (w / 2); - x += sin((double)((f * 50.0) + (i * 13))) * (w0 / 2); + x += (Evas_Coord)(sin((double)((f * 50.0) + (i * 13))) * (w0 / 2)); y = (win_h / 2) - (h / 2); - y += cos((double)((f * 45.0) + (i * 28))) * (h0 / 2); + y += (Evas_Coord)(cos((double)((f * 45.0) + (i * 28))) * (h0 / 2)); evas_object_geometry_set(o, x, y, w, h); } } From b3c785b650a746a11fa12d26da446ebcd05c6e86 Mon Sep 17 00:00:00 2001 From: Stefan Schmidt Date: Mon, 9 Sep 2019 12:27:44 +0200 Subject: [PATCH 03/10] release: Update NEWS and bump version for 1.23.0-beta1 release --- NEWS | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/NEWS b/NEWS index 4bbd8b79a6..975ff1c617 100644 --- a/NEWS +++ b/NEWS @@ -7,6 +7,8 @@ Changes since 1.22.0: Features: + * eolian: remove support for inlist/inarray + * ecore-drm2: Add API function to return output rotation (T7690) * ecore-drm2: Add background_color to crtc atomic properties * ecore-drm2: Fill in crtc background color (if supported) during atomic commits * ecore-drm2: Add API function to set crtc background color @@ -28,6 +30,42 @@ Features: Fixes: + * Fix leak in elm atspi + * eina_file: set errno on open fail for win32 build + * evas-gl-drm: Fix issue of rotation not actually rotating (T7690) + * solve neon rotation issue by moving to the tiled rotator + * eo: Fix missing varags cleanup (CID1399080) + * efl_core_command_line: Fix logically dead code (CID1399106) + * efl_ui_widget_common: Fix potential resource leak (CID1399088) + * efl_ui_selection_manager: Fix unchecked return value (CID1399092) + * evas_device: Fix dereferencing null pointer (CID1399091) + * efl_ui_stack: Fix dereference null return value (CID1399082) + * efl_ui_datepicker: Fix uninitialized scalar value (CID1397006) + * efl_ui_grid: Fix dereferencing null pointer (CID1397000) + * ecore_con: Fix dereferencing of null pointer (CID1396990) + * elm_atspi_bridge: Fix resource leak (CID1399429) + * efl_ui_win: Fix dereference null return value (CID1399428) + * efl_ui_win: Fix dereference null return (CID1399427) + * efl_ui_win: Fix dereference null return (CID1399426) + * efl_ui_win: Fix dereference null return value (CID1399425) + * efreet: Fix resource leak (CID1399090) + * efl_ui_text: Fix resource leak (CID1396998) + * eldbus: Fix dereference after null check (CID1399422) + * efl_ui_focus_manager_calc: Fix resource leaks (CID1396984, CID1396965) + * elm_focus_legacy: Fix resource leaks (CID1399096, CID1399095) + * eldbus: Fix resource leak (CID1399097) + * efl_canvas_vg_object: Fix dereference after null check (CID1399423, CID1399421) + * efl_ui_win: fix hw accel detection + * efl_ui_layout: Eina_Error type has been modified to work correctly. + * ecore-drm2: Don't use AtomicAddProperty for plane rotation (T7690) + * ecore-drm2: Update plane state values based on FB (T7690) + * ecore-drm2: Factor in output rotation when getting output info (T7690) + * evas drm: Don't use eng_output_resize or redraws clear (T7690) + * evas drm: Fix software output rotation (T7690) + * efl_ui_image: remove job in sizing calc. (T7360) + * evas_render: Process deferred callback in the sync render case. + * efl_ui_selection_manager: Don't leak malloc'd data (CID1396949) + * ecore-drm2: Add missing @ingroup for some doxy * remove vpath test for user dir the test was broken and fixing is insane (T7728) * tests - fix check header to always include eina due to windows * tests - remove one of the eina strtod tests as libc is failing @@ -189,6 +227,11 @@ Fixes: * evas -gl engines - buffer age - bring back fix for changing buffer age * eio - don't call cb's after a cancel * elm sel mgr - remove event handlers when no drop targets are left + * evas_vg: fix alpha animation bug in case of partial update + * elm_popup: calculate the label min size of popup before the popup group calculation + * vg_common_svg : Initialize "display" attribute + * fix a bunch of breaks that having a blind file unload has brought + * fix xpm loader to be threadable - fixes so much stuff... Changes since 1.21.0: --------------------- From e25a56077c27a83d8b3e6574368a271d3b9ff7fa Mon Sep 17 00:00:00 2001 From: Marcel Hollerbach Date: Mon, 9 Sep 2019 09:03:33 -0400 Subject: [PATCH 04/10] efl_ui_position_manager_list: fix return on viewport changes Summary: we also need to return here when the position is not the same, or we are going to place items in the wrong spot. Reviewers: segfaultxavi, zmike, cedric Reviewed By: zmike Subscribers: #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D9869 --- src/lib/elementary/efl_ui_position_manager_list.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/lib/elementary/efl_ui_position_manager_list.c b/src/lib/elementary/efl_ui_position_manager_list.c index c2558ef512..dfdc6b0769 100644 --- a/src/lib/elementary/efl_ui_position_manager_list.c +++ b/src/lib/elementary/efl_ui_position_manager_list.c @@ -350,7 +350,11 @@ schedule_recalc_absolut_size(Eo *obj, Efl_Ui_Position_Manager_List_Data *pd) EOLIAN static void _efl_ui_position_manager_list_efl_ui_position_manager_entity_viewport_set(Eo *obj, Efl_Ui_Position_Manager_List_Data *pd, Eina_Rect size) { - if (pd->viewport.w == size.w && pd->viewport.h == size.h) return; + if (pd->viewport.x == size.x && + pd->viewport.y == size.y && + pd->viewport.w == size.w && + pd->viewport.h == size.h) + return; pd->viewport = size; From 4ec57607714d2bc977b1219e72f82d22cbec144c Mon Sep 17 00:00:00 2001 From: Daniel Kolesa Date: Mon, 9 Sep 2019 15:10:57 +0200 Subject: [PATCH 05/10] evas_filter_parser: add a workaround for in-tree runs Without this, the prefix would get pointed to something like /path/to/efl/build/share/evas, which is not a valid path when building. That would cause the docs build to fail. --- doc/meson.build | 6 +++++- src/lib/evas/filters/evas_filter_parser.c | 8 +++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/doc/meson.build b/doc/meson.build index a362c6d2ba..576d2fed4f 100644 --- a/doc/meson.build +++ b/doc/meson.build @@ -114,7 +114,11 @@ foreach text_filter_property : text_filter_properties filter_code = run_command('cat', join_paths(meson.source_root(), 'src', 'examples', 'evas', 'filters', 'filter_'+name+'.lua')) doc_target += custom_target('preview_text_filters_'+name, - command: [env, 'EFL_RUN_IN_TREE=1', preview_text_filter.full_path(), text, filter_code.stdout(), '@OUTPUT@', font, size], + command: [ + env, 'EFL_RUN_IN_TREE=1', + 'EFL_EVAS_FILTER_LUA_PREFIX=' + join_paths(meson.source_root(), 'src', 'lib', 'evas'), + preview_text_filter.full_path(), text, filter_code.stdout(), '@OUTPUT@', font, size + ], depends: preview_text_filter, output: 'filter_'+name+'.png', build_by_default: false diff --git a/src/lib/evas/filters/evas_filter_parser.c b/src/lib/evas/filters/evas_filter_parser.c index 264f6a6ffa..72308d2a9e 100644 --- a/src/lib/evas/filters/evas_filter_parser.c +++ b/src/lib/evas/filters/evas_filter_parser.c @@ -2262,7 +2262,13 @@ static char *_lua_color_code = NULL; static inline void _lua_import_path_get(char *path, size_t len, const char *name) { - const char *pfx = _evas_module_datadir_get(); + const char *pfx = NULL; + /* a hack for in-tree runs, can point this to src/lib/evas */ + if (getenv("EFL_RUN_IN_TREE")) + pfx = getenv("EFL_EVAS_FILTER_LUA_PREFIX"); + /* the real path not for in-tree runs */ + if (!pfx) + pfx = _evas_module_datadir_get(); size_t r = 0; #ifdef FILTERS_DEBUG From 3d03d4031d8adac6b6a39ad0dcf513fcda976390 Mon Sep 17 00:00:00 2001 From: Marcel Hollerbach Date: Mon, 9 Sep 2019 09:15:00 -0400 Subject: [PATCH 06/10] build: fix disabling of audio Summary: this supports disabling audio building in efl. Reviewers: tasn, zmike Reviewed By: zmike Subscribers: zmike, cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D9873 --- meson.build | 6 +++++- src/lib/edje/meson.build | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/meson.build b/meson.build index 5d5da3e06c..ebea18e0bc 100644 --- a/meson.build +++ b/meson.build @@ -280,7 +280,7 @@ subprojects = [ ['ecore' ,[] , false, true, false, false, false, false, ['eina', 'eo', 'efl'], ['buildsystem']], ['eldbus' ,[] , false, true, true, false, true, true, ['eina', 'eo', 'efl'], []], ['ecore' ,[] , true, false, false, false, true, true, ['eina', 'eo', 'efl'], []], #ecores modules depend on eldbus -['ecore_audio' ,[] , false, true, false, false, false, false, ['eina', 'eo'], []], +['ecore_audio' ,['audio'] , false, true, false, false, false, false, ['eina', 'eo'], []], ['ecore_avahi' ,['avahi'] , false, true, false, false, false, true, ['eina', 'ecore'], []], ['ecore_con' ,[] , false, true, true, false, true, false, ['eina', 'eo', 'efl', 'ecore'], ['http-parser']], ['ecore_file' ,[] , false, true, false, false, false, false, ['eina'], []], @@ -325,6 +325,10 @@ config_dir += include_directories('.') #the other modules require theire package subdir(join_paths(local_module, 'eina')) +#List of dependency objects that might be disabled due to configurations +#If they are enabled, the object gets overwritten by the library file. +ecore_audio = declare_dependency() + test_dirs = [] example_dirs = [] tmp_empty = declare_dependency() diff --git a/src/lib/edje/meson.build b/src/lib/edje/meson.build index 23d93ce27e..9c7fb3951a 100644 --- a/src/lib/edje/meson.build +++ b/src/lib/edje/meson.build @@ -15,7 +15,7 @@ endif config_h.set('EDJE_CALC_CACHE', '1') -if get_option('edje-sound-and-video') +if get_option('audio') and get_option('edje-sound-and-video') config_h.set('ENABLE_MULTISENSE', '1') edje_deps += ecore_audio endif From 2bca31b4f42ee85de692c3787bfb3ff31fe9b811 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Mon, 9 Sep 2019 15:56:26 +0200 Subject: [PATCH 07/10] docs: remove nstate preview Summary: this widget no longer exists Reviewers: q66 Reviewed By: q66 Subscribers: cedric, #reviewers, #committers Tags: #efl_docs Differential Revision: https://phab.enlightenment.org/D9875 --- doc/index_elm.dox | 4 ---- doc/meson.build | 1 - doc/widgets/widget_preview_nstate.c | 10 ---------- 3 files changed, 15 deletions(-) delete mode 100644 doc/widgets/widget_preview_nstate.c diff --git a/doc/index_elm.dox b/doc/index_elm.dox index 2aa1f4b1ae..759512f4cf 100644 --- a/doc/index_elm.dox +++ b/doc/index_elm.dox @@ -173,10 +173,6 @@ * * @image html img/widget/notify/preview-00.png * @image latex img/widget/notify/preview-00.eps - * @li @ref Elm_Nstate - * - * @image html img/widget/nstate/preview-00.png - * @image latex img/widget/nstate/preview-00.eps * @li @ref Elm_Panel * * @image html img/widget/panel/preview-00.png diff --git a/doc/meson.build b/doc/meson.build index 576d2fed4f..b6bce8bf52 100644 --- a/doc/meson.build +++ b/doc/meson.build @@ -66,7 +66,6 @@ widget_previews = [ ['mapbuf', 'preview-00.png', 'widget_preview_mapbuf', '200', '200'], ['menu', 'preview-00.png', 'widget_preview_menu', '100', '100'], ['notify', 'preview-00.png', 'widget_preview_notify', '60', '30'], - ['nstate', 'preview-00.png', 'widget_preview_nstate', '45', '28'], ['panel', 'preview-00.png', 'widget_preview_panel', '150', '50'], ['panes', 'preview-00.png', 'widget_preview_panes', '200', '100'], ['photocam', 'preview-00.png', 'widget_preview_photocam', '243', '162'], diff --git a/doc/widgets/widget_preview_nstate.c b/doc/widgets/widget_preview_nstate.c deleted file mode 100644 index d1fc3d1e4b..0000000000 --- a/doc/widgets/widget_preview_nstate.c +++ /dev/null @@ -1,10 +0,0 @@ -#include "widget_preview_tmpl_head.c" - -Evas_Object *o = efl_add(EFL_UI_NSTATE_CLASS, win); -evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); -elm_win_resize_object_add(win, o); -evas_object_show(o); - -elm_object_text_set(o, "Nstate"); - -#include "widget_preview_tmpl_foot.c" From 1148ab3393080b9ed616b0efa1e979a9ed1266cf Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Mon, 9 Sep 2019 16:02:51 +0200 Subject: [PATCH 08/10] docs: fix invalid $class reference to use @class Summary: ref T7717 Reviewers: segfaultxavi Reviewed By: segfaultxavi Subscribers: cedric, #reviewers, #committers Tags: #efl_docs Maniphest Tasks: T7717 Differential Revision: https://phab.enlightenment.org/D9876 --- src/lib/elementary/efl_ui_internal_text_scroller.eo | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/elementary/efl_ui_internal_text_scroller.eo b/src/lib/elementary/efl_ui_internal_text_scroller.eo index ea0d573417..a05300dbd0 100644 --- a/src/lib/elementary/efl_ui_internal_text_scroller.eo +++ b/src/lib/elementary/efl_ui_internal_text_scroller.eo @@ -10,7 +10,7 @@ class @beta Efl.Ui.Internal_Text_Scroller extends Efl.Ui.Scroller [[Internal-usage text scroller class. This class is a special scroller that evaluates its size based on the - $Efl.Canvas.Text object it holds. On initialization the object is meant + @Efl.Canvas.Text object it holds. On initialization the object is meant to be passed along a container (so that other objects such as a "guide hint" text object are store in such container. ]] From 165921ec040f427875fc0b32b1f03d4a45efd25e Mon Sep 17 00:00:00 2001 From: Lauro Moura Date: Mon, 9 Sep 2019 18:10:02 +0200 Subject: [PATCH 09/10] eolian_cxx: Add support for @by_ref Summary: It will coexist with `eolian_type_is_ptr` while we phase out the latter. Fixes: T8211 Depends on D9866 Reviewers: q66, felipealmeida Reviewed By: q66 Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D9867 --- src/lib/eolian_cxx/grammar/klass_def.hpp | 72 +++++++++++++++----- src/lib/eolian_cxx/grammar/qualifier_def.hpp | 4 +- 2 files changed, 56 insertions(+), 20 deletions(-) diff --git a/src/lib/eolian_cxx/grammar/klass_def.hpp b/src/lib/eolian_cxx/grammar/klass_def.hpp index fbd8779e0f..4de294e836 100644 --- a/src/lib/eolian_cxx/grammar/klass_def.hpp +++ b/src/lib/eolian_cxx/grammar/klass_def.hpp @@ -372,6 +372,12 @@ namespace value_ownership const bool unmoved = false; }; +namespace is_by +{ + const bool reference = true; + const bool value = false; +}; + // type_def represents a type where it is used, like a method parameter or a struc field, in contrast to more // specifict types like struct_def, class_def, function_def, which represents a declaration of a type. struct type_def @@ -389,11 +395,11 @@ struct type_def type_def(variant_type original_type, std::string c_type, bool has_own, bool is_ptr, bool is_beta, std::string doc_summary) : original_type(original_type), c_type(c_type), has_own(has_own), is_ptr(is_ptr), is_beta(is_beta), doc_summary(doc_summary) {} - type_def(Eolian_Type const* eolian_type, Eolian_Unit const* unit, Eolian_C_Type_Type ctype, bool is_moved) + type_def(Eolian_Type const* eolian_type, Eolian_Unit const* unit, std::string const& ctype, bool is_moved, bool is_reference) { - set(eolian_type, unit, ctype, is_moved); + set(eolian_type, unit, ctype, is_moved, is_reference); } - void set(Eolian_Type const* eolian_type, Eolian_Unit const* unit, Eolian_C_Type_Type ctype, bool is_moved); + void set(Eolian_Type const* eolian_type, Eolian_Unit const* unit, std::string const & ctype, bool is_moved, bool is_reference); void set(Eolian_Expression_Type eolian_exp_type); friend inline bool operator<(type_def const& lhs, type_def const& rhs) @@ -433,14 +439,15 @@ inline bool operator!=(type_def const& lhs, type_def const& rhs) type_def const void_ {attributes::regular_type_def{"void", {qualifier_info::is_none, {}}, {}}, "void", false, false, false, ""}; -inline void type_def::set(Eolian_Type const* eolian_type, Eolian_Unit const* unit, Eolian_C_Type_Type ctype, bool is_moved) +inline void type_def::set(Eolian_Type const* eolian_type, Eolian_Unit const* unit, std::string const& ctype, bool is_moved, bool is_reference) { - c_type = ::eolian_type_c_type_get(eolian_type, ctype); + c_type = ctype; is_value_type = ('*' != c_type.back()); // ::eina_stringshare_del(stringshare); // this crashes Eolian_Type const* stp = eolian_type_base_type_get(eolian_type); has_own = is_moved; - is_ptr = !!::eolian_type_is_ptr(eolian_type); + + is_ptr = is_reference || eolian_type_is_ptr(eolian_type); Eolian_Typedecl const* decl = eolian_type_typedecl_get(eolian_type); is_beta = decl && eolian_object_is_beta(EOLIAN_OBJECT(decl)); @@ -452,7 +459,7 @@ inline void type_def::set(Eolian_Type const* eolian_type, Eolian_Unit const* uni switch( ::eolian_type_type_get(eolian_type)) { case EOLIAN_TYPE_VOID: - original_type = attributes::regular_type_def{"void", {qualifiers(eolian_type, is_moved), {}}, {}}; + original_type = attributes::regular_type_def{"void", {qualifiers(eolian_type, is_moved, is_ptr), {}}, {}}; break; case EOLIAN_TYPE_REGULAR: if (!stp) @@ -474,15 +481,19 @@ inline void type_def::set(Eolian_Type const* eolian_type, Eolian_Unit const* uni for(efl::eina::iterator namespace_iterator( ::eolian_type_namespaces_get(eolian_type)) , namespace_last; namespace_iterator != namespace_last; ++namespace_iterator) namespaces.push_back(&*namespace_iterator); - original_type = {regular_type_def{ ::eolian_type_short_name_get(eolian_type), {qualifiers(eolian_type, is_moved), {}}, namespaces, type_type, is_undefined}}; + original_type = {regular_type_def{ ::eolian_type_short_name_get(eolian_type), {qualifiers(eolian_type, is_moved, is_ptr), {}}, namespaces, type_type, is_undefined}}; } else { complex_type_def complex - {{::eolian_type_short_name_get(eolian_type), {qualifiers(eolian_type, is_moved), {}}, {}}, {}}; + {{::eolian_type_short_name_get(eolian_type), {qualifiers(eolian_type, is_moved, is_ptr), {}}, {}}, {}}; while (stp) { - complex.subtypes.push_back({stp, unit, EOLIAN_C_TYPE_DEFAULT, eolian_type_is_move(stp)}); + complex.subtypes.push_back({stp + , unit + , ::eolian_type_c_type_get(stp, EOLIAN_C_TYPE_DEFAULT) + , eolian_type_is_move(stp) + , is_by::value}); stp = eolian_type_next_type_get(stp); } original_type = complex; @@ -491,7 +502,7 @@ inline void type_def::set(Eolian_Type const* eolian_type, Eolian_Unit const* uni case EOLIAN_TYPE_CLASS: { Eolian_Class const* klass = eolian_type_class_get(eolian_type); - original_type = klass_name(klass, {qualifiers(eolian_type, is_moved), {}}); + original_type = klass_name(klass, {qualifiers(eolian_type, is_moved, is_ptr), {}}); } break; default: @@ -540,7 +551,12 @@ struct alias_def is_undefined = true; else { - base_type = type_def(::eolian_typedecl_base_type_get(alias_obj), unit, EOLIAN_C_TYPE_DEFAULT, value_ownership::unmoved); + auto eolian_type = ::eolian_typedecl_base_type_get(alias_obj); + base_type = type_def(eolian_type + , unit + , ::eolian_type_c_type_get(eolian_type, EOLIAN_C_TYPE_DEFAULT) + , value_ownership::unmoved + , is_by::value); is_undefined = false; } @@ -593,7 +609,11 @@ struct parameter_def documentation_def documentation, Eolian_Unit const* unit) : direction(std::move(direction)), type(std::move(type)), param_name(std::move(param_name)), documentation(documentation), unit(unit) {} parameter_def(Eolian_Function_Parameter const* param, Eolian_Unit const* unit) - : type( ::eolian_parameter_type_get(param), unit, EOLIAN_C_TYPE_PARAM, eolian_parameter_is_move(param)) + : type( ::eolian_parameter_type_get(param) + , unit + , eolian_parameter_c_type_get(param, EINA_FALSE) + , eolian_parameter_is_move(param) + , eolian_parameter_is_by_ref(param)) , param_name( ::eolian_parameter_name_get(param)), unit(unit) { Eolian_Parameter_Dir direction = ::eolian_parameter_direction_get(param); @@ -747,7 +767,11 @@ struct function_def return_documentation = eolian_function_return_documentation_get(function, type); scope = static_cast(eolian_function_scope_get(function, type)); if(r_type) - return_type.set(r_type, unit, EOLIAN_C_TYPE_RETURN, eolian_function_return_is_move(function, type)); + return_type.set(r_type + , unit + , eolian_function_return_c_type_get(function, type) + , eolian_function_return_is_move(function, type) + , eolian_function_return_is_by_ref(function, type)); if(type == EOLIAN_METHOD || type == EOLIAN_FUNCTION_POINTER) { for(efl::eina::iterator param_iterator ( ::eolian_function_parameters_get(function)) @@ -1003,7 +1027,11 @@ struct variable_def variable_def(Eolian_Variable const* variable, Eolian_Unit const* unit) : name(::eolian_variable_short_name_get(variable)) , full_name(::eolian_variable_name_get(variable)) - , base_type(::eolian_variable_base_type_get(variable), unit, ::EOLIAN_C_TYPE_DEFAULT, value_ownership::unmoved) + , base_type(::eolian_variable_base_type_get(variable) + , unit + , ::eolian_type_c_type_get(eolian_variable_base_type_get(variable), ::EOLIAN_C_TYPE_DEFAULT) + , value_ownership::unmoved + , is_by::value) , documentation(::eolian_variable_documentation_get(variable)) , type(static_cast(::eolian_variable_type_get(variable))) , expression_value() @@ -1087,7 +1115,12 @@ struct event_def event_def(Eolian_Event const* event, Eolian_Class const* cls, Eolian_Unit const* unit) : klass(cls, {attributes::qualifier_info::is_none, std::string()}) - , type( ::eolian_event_type_get(event) ? eina::optional{{::eolian_event_type_get(event), unit, EOLIAN_C_TYPE_DEFAULT, value_ownership::unmoved}} : eina::optional{}) + , type( ::eolian_event_type_get(event) ? eina::optional{{::eolian_event_type_get(event) + , unit + , ::eolian_type_c_type_get(::eolian_event_type_get(event), EOLIAN_C_TYPE_DEFAULT) + , value_ownership::unmoved + , is_by::value} + } : eina::optional{}) , name( ::eolian_event_name_get(event)) , c_name( ::eolian_event_c_macro_get(event)) , beta( ::eolian_event_is_beta(event)) @@ -1552,8 +1585,11 @@ struct struct_field_def { name = eolian_typedecl_struct_field_name_get(struct_field); try { - type.set(eolian_typedecl_struct_field_type_get(struct_field), unit, EOLIAN_C_TYPE_DEFAULT - , eolian_typedecl_struct_field_is_move(struct_field)); + type.set(eolian_typedecl_struct_field_type_get(struct_field) + , unit + , eolian_typedecl_struct_field_c_type_get(struct_field) + , eolian_typedecl_struct_field_is_move(struct_field) + , eolian_typedecl_struct_field_is_by_ref(struct_field)); } catch(std::runtime_error const&) { /* Silently skip pointer fields*/ } documentation = ::eolian_typedecl_struct_field_documentation_get(struct_field); } diff --git a/src/lib/eolian_cxx/grammar/qualifier_def.hpp b/src/lib/eolian_cxx/grammar/qualifier_def.hpp index cab3ca8667..0823010437 100644 --- a/src/lib/eolian_cxx/grammar/qualifier_def.hpp +++ b/src/lib/eolian_cxx/grammar/qualifier_def.hpp @@ -72,11 +72,11 @@ inline qualifier_bool operator^(qualifier_bool lhs, qualifier_info rhs) return lhs; } -inline qualifier_info qualifiers(Eolian_Type const* type, bool is_moved) +inline qualifier_info qualifiers(Eolian_Type const* type, bool is_moved, bool is_by_ref) { qualifier_info is_own = is_moved ? qualifier_info::is_own : qualifier_info::is_none; qualifier_info is_const = ::eolian_type_is_const(type) ? qualifier_info::is_const : qualifier_info::is_none; - qualifier_info is_ref = ::eolian_type_is_ptr(type) ? qualifier_info::is_ref : qualifier_info::is_none; + qualifier_info is_ref = is_by_ref ? qualifier_info::is_ref : qualifier_info::is_none; return is_own | is_const | is_ref; } From 267c57d0f10d4b1577181c8f7157b7bc2f8053a6 Mon Sep 17 00:00:00 2001 From: Daniel Kolesa Date: Mon, 9 Sep 2019 18:26:49 +0200 Subject: [PATCH 10/10] eolian: remove second parameter for eolian_type_c_type_get This has been replaced by newer APIs. --- src/bin/eolian/docs.c | 2 +- src/bin/eolian/sources.c | 2 +- src/bin/eolian/types.c | 4 ++-- src/bindings/luajit/eolian.lua | 18 +++--------------- src/lib/eolian/Eolian.h | 10 +--------- src/lib/eolian/database_type_api.c | 4 ++-- src/lib/eolian/eolian_database.h | 7 +++++++ src/lib/eolian_cxx/grammar/klass_def.hpp | 8 ++++---- src/scripts/pyolian/eolian.py | 21 ++------------------- src/scripts/pyolian/eolian_lib.py | 4 ++-- src/scripts/pyolian/test_eolian.py | 12 ------------ src/tests/eolian/eolian_parsing.c | 12 ++++++------ 12 files changed, 31 insertions(+), 73 deletions(-) diff --git a/src/bin/eolian/docs.c b/src/bin/eolian/docs.c index 498278f0e1..0e0d359109 100644 --- a/src/bin/eolian/docs.c +++ b/src/bin/eolian/docs.c @@ -380,7 +380,7 @@ eo_gen_docs_event_gen(const Eolian_State *state, const Eolian_Event *ev, if (rt) { p = buf; - Eina_Stringshare *rts = eolian_type_c_type_get(rt, EOLIAN_C_TYPE_DEFAULT); + Eina_Stringshare *rts = eolian_type_c_type_get(rt); snprintf(buf, sizeof(buf), "@return %s", rts); eina_stringshare_del(rts); } diff --git a/src/bin/eolian/sources.c b/src/bin/eolian/sources.c index dea9d86011..fd0c32bb07 100644 --- a/src/bin/eolian/sources.c +++ b/src/bin/eolian/sources.c @@ -235,7 +235,7 @@ _generate_iterative_free(Eina_Strbuf **buf, const Eolian_Type *type, const Eolia eina_strbuf_append_printf(iter_param, "%s_iter", eolian_parameter_name_get(parameter)); //generate the field definition - eina_strbuf_append_printf(*buf, " %s", eolian_type_c_type_get(inner_type, EOLIAN_C_TYPE_DEFAULT)); + eina_strbuf_append_printf(*buf, " %s", eolian_type_c_type_get(inner_type)); eina_strbuf_append_buffer(*buf, iter_param); eina_strbuf_append(*buf, ";\n"); diff --git a/src/bin/eolian/types.c b/src/bin/eolian/types.c index 7fe1a85b44..75426f1220 100644 --- a/src/bin/eolian/types.c +++ b/src/bin/eolian/types.c @@ -203,7 +203,7 @@ _var_generate(const Eolian_State *state, const Eolian_Variable *vr) } else { - Eina_Stringshare *ct = eolian_type_c_type_get(vt, EOLIAN_C_TYPE_DEFAULT); + Eina_Stringshare *ct = eolian_type_c_type_get(vt); eina_strbuf_append_printf(buf, "EWAPI extern %s %s;", ct, fn); eina_stringshare_del(ct); } @@ -394,7 +394,7 @@ _source_gen_var(Eina_Strbuf *buf, const Eolian_Variable *vr) eina_str_toupper(&fn); const Eolian_Type *vt = eolian_variable_base_type_get(vr); - Eina_Stringshare *ct = eolian_type_c_type_get(vt, EOLIAN_C_TYPE_DEFAULT); + Eina_Stringshare *ct = eolian_type_c_type_get(vt); eina_strbuf_append_printf(buf, "EWAPI %s %s = ", ct, fn); eina_stringshare_del(ct); free(fn); diff --git a/src/bindings/luajit/eolian.lua b/src/bindings/luajit/eolian.lua index a848d029c1..faa39a4315 100644 --- a/src/bindings/luajit/eolian.lua +++ b/src/bindings/luajit/eolian.lua @@ -172,12 +172,6 @@ ffi.cdef [[ EOLIAN_TYPE_BUILTIN_VOID_PTR } Eolian_Type_Builtin_Type; - typedef enum { - EOLIAN_C_TYPE_DEFAULT = 0, - EOLIAN_C_TYPE_PARAM, - EOLIAN_C_TYPE_RETURN - } Eolian_C_Type_Type; - typedef enum { EOLIAN_EXPR_UNKNOWN = 0, EOLIAN_EXPR_INT, @@ -453,7 +447,7 @@ ffi.cdef [[ Eina_Bool eolian_typedecl_is_extern(const Eolian_Typedecl *tp); - const char *eolian_type_c_type_get(const Eolian_Type *tp, Eolian_C_Type_Type ctype); + const char *eolian_type_c_type_get(const Eolian_Type *tp); const char *eolian_typedecl_c_type_get(const Eolian_Typedecl *tp); const char *eolian_typedecl_free_func_get(const Eolian_Typedecl *tp); @@ -989,12 +983,6 @@ M.typedecl_type = { FUNCTION_POINTER = 5 } -M.c_type_type = { - DEFAULT = 0, - PARAM = 1, - RETURN = 2 -} - ffi.metatype("Eolian_Struct_Type_Field", { __index = wrap_object { documentation_get = function(self) @@ -1175,8 +1163,8 @@ M.Type = ffi.metatype("Eolian_Type", { return eolian.eolian_type_is_ptr(self) ~= 0 end, - c_type_get = function(self, ctype) - local v = eolian.eolian_type_c_type_get(self, ctype) + c_type_get = function(self) + local v = eolian.eolian_type_c_type_get(self) if v == nil then return nil end return ffi_stringshare(v) end diff --git a/src/lib/eolian/Eolian.h b/src/lib/eolian/Eolian.h index 78be1ac97f..c0ec4d6a56 100644 --- a/src/lib/eolian/Eolian.h +++ b/src/lib/eolian/Eolian.h @@ -351,13 +351,6 @@ typedef enum EOLIAN_TYPE_BUILTIN_VOID_PTR } Eolian_Type_Builtin_Type; -typedef enum -{ - EOLIAN_C_TYPE_DEFAULT = 0, - EOLIAN_C_TYPE_PARAM, - EOLIAN_C_TYPE_RETURN -} Eolian_C_Type_Type; - typedef enum { EOLIAN_EXPR_UNKNOWN = 0, @@ -3000,7 +2993,6 @@ EAPI Eina_Bool eolian_type_is_ptr(const Eolian_Type *tp); * @brief Get the full C type name of the given type. * * @param[in] tp the type. - * @param[in] ctype the context within which the C type string will be used. * @return The C type name assuming @c tp is not NULL. * * You're responsible for the stringshare. @@ -3009,7 +3001,7 @@ EAPI Eina_Bool eolian_type_is_ptr(const Eolian_Type *tp); * * @ingroup Eolian */ -EAPI Eina_Stringshare *eolian_type_c_type_get(const Eolian_Type *tp, Eolian_C_Type_Type ctype); +EAPI Eina_Stringshare *eolian_type_c_type_get(const Eolian_Type *tp); /* * @brief A helper function to get the full name of a type. diff --git a/src/lib/eolian/database_type_api.c b/src/lib/eolian/database_type_api.c index 12e787d8f8..59a149337f 100644 --- a/src/lib/eolian/database_type_api.c +++ b/src/lib/eolian/database_type_api.c @@ -267,13 +267,13 @@ eolian_typedecl_is_extern(const Eolian_Typedecl *tp) } EAPI Eina_Stringshare * -eolian_type_c_type_get(const Eolian_Type *tp, Eolian_C_Type_Type ctype) +eolian_type_c_type_get(const Eolian_Type *tp) { Eina_Stringshare *ret; Eina_Strbuf *buf; EINA_SAFETY_ON_NULL_RETURN_VAL(tp, NULL); buf = eina_strbuf_new(); - database_type_to_str(tp, buf, NULL, ctype, EINA_FALSE); + database_type_to_str(tp, buf, NULL, EOLIAN_C_TYPE_DEFAULT, EINA_FALSE); ret = eina_stringshare_add(eina_strbuf_string_get(buf)); eina_strbuf_free(buf); return ret; diff --git a/src/lib/eolian/eolian_database.h b/src/lib/eolian/eolian_database.h index 8a16733780..1821642c55 100644 --- a/src/lib/eolian/eolian_database.h +++ b/src/lib/eolian/eolian_database.h @@ -263,6 +263,13 @@ struct _Eolian_Function_Parameter Eina_Bool move :1; }; +typedef enum +{ + EOLIAN_C_TYPE_DEFAULT = 0, + EOLIAN_C_TYPE_PARAM, + EOLIAN_C_TYPE_RETURN +} Eolian_C_Type_Type; + struct _Eolian_Type { Eolian_Object base; diff --git a/src/lib/eolian_cxx/grammar/klass_def.hpp b/src/lib/eolian_cxx/grammar/klass_def.hpp index 4de294e836..108be02f79 100644 --- a/src/lib/eolian_cxx/grammar/klass_def.hpp +++ b/src/lib/eolian_cxx/grammar/klass_def.hpp @@ -491,7 +491,7 @@ inline void type_def::set(Eolian_Type const* eolian_type, Eolian_Unit const* uni { complex.subtypes.push_back({stp , unit - , ::eolian_type_c_type_get(stp, EOLIAN_C_TYPE_DEFAULT) + , ::eolian_type_c_type_get(stp) , eolian_type_is_move(stp) , is_by::value}); stp = eolian_type_next_type_get(stp); @@ -554,7 +554,7 @@ struct alias_def auto eolian_type = ::eolian_typedecl_base_type_get(alias_obj); base_type = type_def(eolian_type , unit - , ::eolian_type_c_type_get(eolian_type, EOLIAN_C_TYPE_DEFAULT) + , ::eolian_type_c_type_get(eolian_type) , value_ownership::unmoved , is_by::value); is_undefined = false; @@ -1029,7 +1029,7 @@ struct variable_def , full_name(::eolian_variable_name_get(variable)) , base_type(::eolian_variable_base_type_get(variable) , unit - , ::eolian_type_c_type_get(eolian_variable_base_type_get(variable), ::EOLIAN_C_TYPE_DEFAULT) + , ::eolian_type_c_type_get(eolian_variable_base_type_get(variable)) , value_ownership::unmoved , is_by::value) , documentation(::eolian_variable_documentation_get(variable)) @@ -1117,7 +1117,7 @@ struct event_def : klass(cls, {attributes::qualifier_info::is_none, std::string()}) , type( ::eolian_event_type_get(event) ? eina::optional{{::eolian_event_type_get(event) , unit - , ::eolian_type_c_type_get(::eolian_event_type_get(event), EOLIAN_C_TYPE_DEFAULT) + , ::eolian_type_c_type_get(::eolian_event_type_get(event)) , value_ownership::unmoved , is_by::value} } : eina::optional{}) diff --git a/src/scripts/pyolian/eolian.py b/src/scripts/pyolian/eolian.py index 22e84e556f..e231d2b579 100644 --- a/src/scripts/pyolian/eolian.py +++ b/src/scripts/pyolian/eolian.py @@ -142,11 +142,6 @@ class Eolian_Type_Builtin_Type(IntEnum): VOID_PTR = 48 FREE_CB = 49 -class Eolian_C_Type_Type(IntEnum): - DEFAULT = 0 - PARAM = 1 - RETURN = 2 - class Eolian_Expression_Type(IntEnum): UNKNOWN = 0 INT = 1 @@ -1053,24 +1048,12 @@ class Type(Object): def builtin_type(self): return Eolian_Type_Builtin_Type(lib.eolian_type_builtin_type_get(self)) - def c_type_get(self, ctype): - s = lib.eolian_type_c_type_get(self, ctype) + def c_type_get(self): + s = lib.eolian_type_c_type_get(self) ret = _str_to_py(s) lib.eina_stringshare_del(c_void_p(s)) return ret - @cached_property - def c_type_default(self): - return self.c_type_get(Eolian_C_Type_Type.DEFAULT) - - @cached_property - def c_type_param(self): - return self.c_type_get(Eolian_C_Type_Type.PARAM) - - @cached_property - def c_type_return(self): - return self.c_type_get(Eolian_C_Type_Type.RETURN) - @cached_property def typedecl(self): c_tdecl = lib.eolian_type_typedecl_get(self) diff --git a/src/scripts/pyolian/eolian_lib.py b/src/scripts/pyolian/eolian_lib.py index b532e98197..b9ee5d39a1 100644 --- a/src/scripts/pyolian/eolian_lib.py +++ b/src/scripts/pyolian/eolian_lib.py @@ -603,8 +603,8 @@ lib.eolian_type_is_const.restype = c_bool lib.eolian_type_is_ptr.argtypes = (c_void_p,) lib.eolian_type_is_ptr.restype = c_bool -# EAPI Eina_Stringshare *eolian_type_c_type_get(const Eolian_Type *tp, Eolian_C_Type_Type ctype); -lib.eolian_type_c_type_get.argtypes = (c_void_p, c_int) +# EAPI Eina_Stringshare *eolian_type_c_type_get(const Eolian_Type *tp); +lib.eolian_type_c_type_get.argtypes = (c_void_p) lib.eolian_type_c_type_get.restype = c_void_p # Stringshare TO BE FREED ### Eolian_Expression ####################################################### diff --git a/src/scripts/pyolian/test_eolian.py b/src/scripts/pyolian/test_eolian.py index 5313e4cbba..36c19ea1ae 100755 --- a/src/scripts/pyolian/test_eolian.py +++ b/src/scripts/pyolian/test_eolian.py @@ -582,10 +582,6 @@ class TestEolianType(unittest.TestCase): self.assertIsNone(t.class_) self.assertEqual(t, t.aliased_base) # TODO find a better test - self.assertEqual(t.c_type_default, 'double') # TODO find a better test - self.assertEqual(t.c_type_param, 'double') - self.assertEqual(t.c_type_return, 'double') - def test_type_regular(self): cls = eolian_db.class_by_name_get('Efl.Gfx.Entity') func = cls.function_by_name_get('geometry') @@ -601,10 +597,6 @@ class TestEolianType(unittest.TestCase): self.assertIsNone(t.class_) self.assertEqual(t, t.aliased_base) - self.assertEqual(t.c_type_default, 'Eina_Rect') # TODO find a better test - self.assertEqual(t.c_type_param, 'Eina_Rect') - self.assertEqual(t.c_type_return, 'Eina_Rect') - td = t.typedecl self.assertIsInstance(td, eolian.Typedecl) self.assertEqual(td.name, 'Eina.Rect') @@ -623,10 +615,6 @@ class TestEolianType(unittest.TestCase): self.assertEqual(list(t.namespaces), ['Efl', 'Gfx']) self.assertEqual(t, t.aliased_base) - self.assertEqual(t.c_type_default, 'Efl_Gfx_Entity *') # TODO find a better test - self.assertEqual(t.c_type_param, 'Efl_Gfx_Entity *') - self.assertEqual(t.c_type_return, 'Efl_Gfx_Entity *') - cls = t.class_ self.assertIsInstance(cls, eolian.Class) self.assertEqual(cls.name, 'Efl.Gfx.Entity') diff --git a/src/tests/eolian/eolian_parsing.c b/src/tests/eolian/eolian_parsing.c index 7ef4387e1a..cc9c79bb79 100644 --- a/src/tests/eolian/eolian_parsing.c +++ b/src/tests/eolian/eolian_parsing.c @@ -375,12 +375,12 @@ EFL_START_TEST(eolian_typedef) fail_if(!(type_name = eolian_typedecl_short_name_get(tdl))); fail_if(strcmp(type_name, "List_Objects")); fail_if(!(type = eolian_typedecl_base_type_get(tdl))); - fail_if(!(type_name = eolian_type_c_type_get(type, EOLIAN_C_TYPE_DEFAULT))); + fail_if(!(type_name = eolian_type_c_type_get(type))); fail_if(strcmp(type_name, "Eina_List *")); eina_stringshare_del(type_name); fail_if(!(type = eolian_type_base_type_get(type))); fail_if(!!eolian_type_next_type_get(type)); - fail_if(!(type_name = eolian_type_c_type_get(type, EOLIAN_C_TYPE_DEFAULT))); + fail_if(!(type_name = eolian_type_c_type_get(type))); fail_if(strcmp(type_name, "Typedef *")); eina_stringshare_del(type_name); @@ -432,14 +432,14 @@ EFL_START_TEST(eolian_complex_type) eina_stringshare_del(type_name); fail_if(!(type = eolian_type_base_type_get(type))); fail_if(!!eolian_type_next_type_get(type)); - fail_if(!(type_name = eolian_type_c_type_get(type, EOLIAN_C_TYPE_DEFAULT))); + fail_if(!(type_name = eolian_type_c_type_get(type))); fail_if(eolian_type_is_move(type)); fail_if(eolian_type_builtin_type_get(type) != EOLIAN_TYPE_BUILTIN_ARRAY); fail_if(strcmp(type_name, "Eina_Array *")); eina_stringshare_del(type_name); fail_if(!(type = eolian_type_base_type_get(type))); fail_if(!!eolian_type_next_type_get(type)); - fail_if(!(type_name = eolian_type_c_type_get(type, EOLIAN_C_TYPE_DEFAULT))); + fail_if(!(type_name = eolian_type_c_type_get(type))); fail_if(!eolian_type_is_move(type)); fail_if(strcmp(type_name, "Eina_Strbuf *")); eina_stringshare_del(type_name); @@ -456,7 +456,7 @@ EFL_START_TEST(eolian_complex_type) eina_stringshare_del(type_name); fail_if(!(type = eolian_type_base_type_get(type))); fail_if(!!eolian_type_next_type_get(type)); - fail_if(!(type_name = eolian_type_c_type_get(type, EOLIAN_C_TYPE_DEFAULT))); + fail_if(!(type_name = eolian_type_c_type_get(type))); fail_if(eolian_type_is_move(type)); fail_if(strcmp(type_name, "const char *")); eina_stringshare_del(type_name); @@ -470,7 +470,7 @@ EFL_START_TEST(eolian_complex_type) eina_stringshare_del(type_name); fail_if(!(type = eolian_type_base_type_get(type))); fail_if(!!eolian_type_next_type_get(type)); - fail_if(!(type_name = eolian_type_c_type_get(type, EOLIAN_C_TYPE_DEFAULT))); + fail_if(!(type_name = eolian_type_c_type_get(type))); fail_if(eolian_type_is_move(type)); fail_if(eolian_type_builtin_type_get(type) != EOLIAN_TYPE_BUILTIN_STRINGSHARE); fail_if(strcmp(type_name, "Eina_Stringshare *"));