[EGIT] [core/enlightenment] master 01/01: e - add polkit module to add an auth agent into e
raster pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=5f4697fd7d03aad17f5b5ee79a1fbc5f9b472601 commit 5f4697fd7d03aad17f5b5ee79a1fbc5f9b472601 Author: Carsten Haitzler (Rasterman) Date: Tue Oct 8 01:29:24 2019 +0100 e - add polkit module to add an auth agent into e new feature - polkit auth agent support partly in core (need to have the pam setuid root auth tool respond via dbus) and partly a module (the agent dbus protocol handling and setup as well as auth gui). this took me a while even with all the docs to work out how polkit works... it was really fussy and its data structs are an extra pain in the butt to craft with eldbus, but i managed it. not everything is supported but the core basics are there and this can be built on. right now the gui is really basic, but does the job. --- data/config/default/e.src | 2 +- data/config/standard/e.src | 6 +- data/config/tiling/e.src | 7 +- meson_options.txt | 4 + src/bin/e_auth.c | 57 +++- src/bin/e_auth.h | 1 + src/bin/e_ckpasswd_main.c | 207 +++-- src/bin/e_config.c | 27 ++ src/bin/e_config.h | 2 +- src/bin/e_module.c | 1 + src/bin/meson.build| 2 +- src/modules/meson.build| 1 + src/modules/polkit/auth_ui.c | 149 ++ src/modules/polkit/e-module-polkit.edj | Bin 0 -> 7523 bytes src/modules/polkit/e_mod_main.c| 17 ++ src/modules/polkit/e_mod_main.h| 32 ++ src/modules/polkit/meson.build | 6 + src/modules/polkit/module.desktop | 6 + src/modules/polkit/polkit.c| 523 + 19 files changed, 1019 insertions(+), 31 deletions(-) diff --git a/data/config/default/e.src b/data/config/default/e.src index a2e0e3e2e..a017effa9 100644 --- a/data/config/default/e.src +++ b/data/config/default/e.src @@ -1,5 +1,5 @@ group "E_Config" struct { - value "config_version" int: 128; + value "config_version" int: 129; value "config_type" uint: 0; // this profile seems to just be super minimalist value "show_splash" int: 0; value "desktop_default_name" string: "%i-%i"; diff --git a/data/config/standard/e.src b/data/config/standard/e.src index 4c716d877..bc9fc5dad 100644 --- a/data/config/standard/e.src +++ b/data/config/standard/e.src @@ -1,5 +1,5 @@ group "E_Config" struct { -value "config_version" int: 128; +value "config_version" int: 129; value "config_type" uint: 3; value "show_splash" int: 1; value "desktop_default_name" string: "%i-%i"; @@ -1015,6 +1015,10 @@ group "E_Config" struct { value "name" string: "bluez5"; value "enabled" uchar: 1; } +group "E_Config_Module" struct { +value "name" string: "polkit"; +value "enabled" uchar: 1; +} } group "xkb.used_layouts" list { group "E_Config_XKB_Layout" struct { diff --git a/data/config/tiling/e.src b/data/config/tiling/e.src index 431fce4bd..2d81e5a6d 100644 --- a/data/config/tiling/e.src +++ b/data/config/tiling/e.src @@ -1,5 +1,5 @@ group "E_Config" struct { -value "config_version" int: 128; +value "config_version" int: 129; value "config_type" uint: 3; value "show_splash" int: 1; value "desktop_default_name" string: "%i-%i"; @@ -1033,11 +1033,14 @@ group "E_Config" struct { value "name" string: "bluez5"; value "enabled" uchar: 1; } +group "E_Config_Module" struct { +value "name" string: "polkit"; +value "enabled" uchar: 1; +} group "E_Config_Module" struct { value "name" string: "tiling"; value "enabled" uchar: 1; } - } group "xkb.used_layouts" list { group "E_Config_XKB_Layout" struct { diff --git a/meson_options.txt b/meson_options.txt index d3457def8..3a077e8a7 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -155,6 +155,10 @@ option('lokker', type: 'boolean', value: true, description: 'enable lokker module: (default=true)') +option('polkit', + type: 'boolean', + value: true, + description: 'enable polkit module: (default=true)') option('luncher', type: 'boolean', value: true, diff --git a/src/bin/e_auth.c b/src/bin/e_auth.c index 00b0e5d84..92670f5d3 100644 --- a/src/bin/e_auth.c +++ b/src/bin/e_auth.c @@ -6,14 +6,17 @@ e_auth_begin(char *passwd) char buf[PATH_MAX], *p; Ecore_Exe *exe = NULL; int ret = 0; + size_t pwlen; - if (strlen(passwd) == 0) goto out; + pwlen = strlen(passwd); + if (pwlen == 0) goto out; - snprintf(buf, sizeof(buf), "%s/enlightenment/utils/enlightenment_ckpa
[EGIT] [website/www-content] master 01/01: Wiki page hello-world-gui.md changed with summary [Fixed examples to use latest API] by Andre Vallestero
WWW-www.enlightenment.org pushed a commit to branch master. http://git.enlightenment.org/website/www-content.git/commit/?id=71a0c2baf05f1bcf72c22fe730044c8de94f1ade commit 71a0c2baf05f1bcf72c22fe730044c8de94f1ade Author: Andre Vallestero Date: Mon Oct 7 15:32:53 2019 -0700 Wiki page hello-world-gui.md changed with summary [Fixed examples to use latest API] by Andre Vallestero --- pages/develop/tutorials/c/hello-world-gui.md.txt | 8 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pages/develop/tutorials/c/hello-world-gui.md.txt b/pages/develop/tutorials/c/hello-world-gui.md.txt index ca0ba5cce..5f3ee7c74 100644 --- a/pages/develop/tutorials/c/hello-world-gui.md.txt +++ b/pages/develop/tutorials/c/hello-world-gui.md.txt @@ -102,7 +102,7 @@ So far ``_gui_setup`` is empty. Create a window by adding the following lines wi Eo *win; win = efl_add(EFL_UI_WIN_CLASS, efl_main_loop_get(), - efl_ui_win_type_set(efl_added, EFL_UI_WIN_BASIC), + efl_ui_win_type_set(efl_added, EFL_UI_WIN_TYPE_BASIC), efl_text_set(efl_added, "Hello World"), efl_ui_win_autodel_set(efl_added, EINA_TRUE)); [...] @@ -132,7 +132,7 @@ _gui_setup() Eo *win; win = efl_add(EFL_UI_WIN_CLASS, efl_main_loop_get(), - efl_ui_win_type_set(efl_added, EFL_UI_WIN_BASIC), + efl_ui_win_type_set(efl_added, EFL_UI_WIN_TYPE_BASIC), efl_text_set(efl_added, "Hello World"), efl_ui_win_autodel_set(efl_added, EINA_TRUE)); } @@ -218,7 +218,7 @@ _gui_setup() Eo *win, *box; win = efl_add(EFL_UI_WIN_CLASS, efl_main_loop_get(), - efl_ui_win_type_set(efl_added, EFL_UI_WIN_BASIC), + efl_ui_win_type_set(efl_added, EFL_UI_WIN_TYPE_BASIC), efl_text_set(efl_added, "Hello World"), efl_ui_win_autodel_set(efl_added, EINA_TRUE)); @@ -366,7 +366,7 @@ _gui_setup() Eo *win, *box; win = efl_add(EFL_UI_WIN_CLASS, efl_main_loop_get(), - efl_ui_win_type_set(efl_added, EFL_UI_WIN_BASIC), + efl_ui_win_type_set(efl_added, EFL_UI_WIN_TYPE_BASIC), efl_text_set(efl_added, "Hello World"), efl_ui_win_autodel_set(efl_added, EINA_TRUE)); --
[EGIT] [core/efl] master 01/01: Pyolian: implement some missing eolian functions
davemds pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=4457a93ae51c62ae50b73090d29291ce6a3e8e77 commit 4457a93ae51c62ae50b73090d29291ce6a3e8e77 Author: Dave Andreoli Date: Mon Oct 7 22:38:04 2019 +0200 Pyolian: implement some missing eolian functions with tests --- src/scripts/pyolian/eolian.py | 41 ++ src/scripts/pyolian/eolian_lib.py | 34 ++- src/scripts/pyolian/test_eolian.py | 20 +++ 3 files changed, 94 insertions(+), 1 deletion(-) diff --git a/src/scripts/pyolian/eolian.py b/src/scripts/pyolian/eolian.py index 70496debc0..c4425e37df 100644 --- a/src/scripts/pyolian/eolian.py +++ b/src/scripts/pyolian/eolian.py @@ -36,6 +36,10 @@ except ImportError: _already_halted = False +# This is the same as the EOLIAN_FILE_FORMAT_VERSION macro +file_format_version = lib.eolian_file_format_version_get() + + # Eolian Enums ## class Eolian_Object_Type(IntEnum): UNKNOWN = 0 @@ -352,11 +356,19 @@ class Eolian_Unit(EolianBaseObject): def file(self): return _str_to_py(lib.eolian_unit_file_get(self)) +@cached_property +def file_path(self): +return _str_to_py(lib.eolian_unit_file_path_get(self)) + @cached_property def state(self): c_state = lib.eolian_unit_state_get(self) return Eolian_State(c_state) if c_state else None +@cached_property +def version(self): +return lib.eolian_unit_version_get(self) + @property def objects(self): return Iterator(Object, lib.eolian_unit_objects_get(self)) @@ -504,6 +516,9 @@ class Eolian_State(Eolian_Unit): return Iterator(Typedecl, lib.eolian_state_enums_by_file_get(self, _str_to_bytes(file_name))) +def state_check(self): +return bool(lib.eolian_state_check(self)) + # Namespace Utility Class ### @@ -616,6 +631,10 @@ class Object(EolianBaseObject): def name(self): return _str_to_py(lib.eolian_object_name_get(self)) +@cached_property +def c_name(self): +return _str_to_py(lib.eolian_object_c_name_get(self)) + @cached_property def short_name(self): return _str_to_py(lib.eolian_object_short_name_get(self)) @@ -819,6 +838,11 @@ class Event(Object): c_type = lib.eolian_event_type_get(self) return Type(c_type) if c_type else None +@cached_property +def class_(self): +c_cls = lib.eolian_event_class_get(self) +return Class(c_cls) if c_cls else None + @cached_property def documentation(self): c_doc = lib.eolian_event_documentation_get(self) @@ -935,6 +959,12 @@ class Function(Object): c_type = lib.eolian_function_return_type_get(self, ftype) return Type(c_type) if c_type else None +def return_c_type_get(self, ftype): +s = lib.eolian_function_return_c_type_get(self, ftype) +ret = _str_to_py(s) +lib.eina_stringshare_del(c_void_p(s)) +return ret + def return_default_value(self, ftype): c_expr = lib.eolian_function_return_default_value_get(self._obj, ftype) return Expression(c_expr) if c_expr else None @@ -1006,6 +1036,12 @@ class Function_Parameter(Object): c_expr = lib.eolian_parameter_default_value_get(self) return Expression(c_expr) if c_expr else None +def c_type_get(self, as_return=False): +s = lib.eolian_parameter_c_type_get(self, as_return) +ret = _str_to_py(s) +lib.eina_stringshare_del(c_void_p(s)) +return ret + class Implement(Object): def __repr__(self): @@ -1021,6 +1057,11 @@ class Implement(Object): c_cls = lib.eolian_implement_class_get(self) return Class(c_cls) if c_cls else None +@cached_property +def implementing_class(self): +c_cls = lib.eolian_implement_implementing_class_get(self) +return Class(c_cls) if c_cls else None + @cached_property def function(self): c_func = lib.eolian_implement_function_get(self, None) diff --git a/src/scripts/pyolian/eolian_lib.py b/src/scripts/pyolian/eolian_lib.py index 10098bf9b3..3e9c89111e 100644 --- a/src/scripts/pyolian/eolian_lib.py +++ b/src/scripts/pyolian/eolian_lib.py @@ -93,6 +93,10 @@ lib.eolian_state_all_eo_files_parse.restype = c_bool lib.eolian_state_all_eot_files_parse.argtypes = (c_void_p,) lib.eolian_state_all_eot_files_parse.restype = c_bool +# EAPI Eina_Bool eolian_state_check(const Eolian_State *state); +lib.eolian_state_check.argtypes = (c_void_p,) +lib.eolian_state_check.restype = c_bool + # EAPI const Eolian_Unit *eolian_state_unit_by_file_get(const Eolian_State *state, const char *file_name); lib.eolian_state_unit_by_file_get.argtypes = (c_void_p, c_char_p) lib.eolian_state_unit_by_file_get.
[EGIT] [core/efl] master 01/02: Pyolian gendoc: use some aux eolian functions to simplify templates
davemds pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=70eb1c7b1759396d45d1bee65462d1eb37204e01 commit 70eb1c7b1759396d45d1bee65462d1eb37204e01 Author: Dave Andreoli Date: Mon Oct 7 20:32:05 2019 +0200 Pyolian gendoc: use some aux eolian functions to simplify templates --- src/scripts/gendoc/doc_macros.include | 30 ++ src/scripts/pyolian/eolian.py | 15 --- src/scripts/pyolian/eolian_lib.py | 14 ++ src/scripts/pyolian/test_eolian.py| 8 4 files changed, 40 insertions(+), 27 deletions(-) diff --git a/src/scripts/gendoc/doc_macros.include b/src/scripts/gendoc/doc_macros.include index 877b7c67bf..1527e09f43 100644 --- a/src/scripts/gendoc/doc_macros.include +++ b/src/scripts/gendoc/doc_macros.include @@ -7,14 +7,8 @@ ${UNTOKENIZE(tokens=obj.summary_tokens)}$#! ${UNTOKENIZE(tokens=obj.documentation_get(obj.function.type).summary_tokens)}$#! - - - - -${UNTOKENIZE(tokens=parent_impl.documentation_get(parent_impl.function.type).summary_tokens)}$#! - - - + +${UNTOKENIZE(tokens=obj.documentation_fallback.summary_tokens)}$#! ${UNTOKENIZE(tokens=obj.documentation.summary_tokens)}$#! @@ -31,14 +25,8 @@ ${UNTOKENIZE(tokens=obj.description_tokens)}$#! ${UNTOKENIZE(tokens=obj.documentation_get(obj.function.type).description_tokens)}$#! - - - - -${UNTOKENIZE(tokens=parent_impl.documentation_get(parent_impl.function.type).description_tokens)}$#! - - - + +${UNTOKENIZE(tokens=obj.documentation_fallback.description_tokens)}$#! ${UNTOKENIZE(tokens=obj.documentation.description_tokens)}$#! @@ -55,14 +43,8 @@ ${UNTOKENIZE(tokens=obj.documentation.description_tokens)}$#! //Since ${obj.documentation_get(obj.function.type).since}$// - - - - -//Since ${parent_impl.documentation_get(parent_impl.function.type).since}$// - - - + +//Since ${obj.documentation_fallback.since}$// //Since ${obj.documentation.since}$// diff --git a/src/scripts/pyolian/eolian.py b/src/scripts/pyolian/eolian.py index 58c3105e03..70496debc0 100644 --- a/src/scripts/pyolian/eolian.py +++ b/src/scripts/pyolian/eolian.py @@ -1011,6 +1011,11 @@ class Implement(Object): def __repr__(self): return "".format(self) +@cached_property +def parent(self): +c_impl = lib.eolian_aux_implement_parent_get(self) +return Implement(c_impl) if c_impl else None + @cached_property def class_(self): c_cls = lib.eolian_implement_class_get(self) @@ -1022,10 +1027,14 @@ class Implement(Object): return Function(c_func) if c_func else None def documentation_get(self, ftype=Eolian_Function_Type.METHOD): -# something strange in this eolian api :/ (see 'documentation' property -c_doc = lib.eolian_implement_documentation_get(self, ftype) +# c_doc = lib.eolian_implement_documentation_get(self, ftype) +c_doc = lib.eolian_aux_implement_documentation_get(self, ftype) +return Documentation(c_doc) if c_doc else None + +@cached_property +def documentation_fallback(self): +c_doc = lib.eolian_aux_implement_documentation_fallback_get(self) return Documentation(c_doc) if c_doc else None -# TODO implement util properties for documentation_get def is_auto(self, ftype=Eolian_Function_Type.METHOD): return bool(lib.eolian_implement_is_auto(self, ftype)) diff --git a/src/scripts/pyolian/eolian_lib.py b/src/scripts/pyolian/eolian_lib.py index e73c37e1db..10098bf9b3 100644 --- a/src/scripts/pyolian/eolian_lib.py +++ b/src/scripts/pyolian/eolian_lib.py @@ -706,3 +706,17 @@ lib.eolian_error_documentation_get.restype = c_void_p # EAPI Eina_Bool eolian_error_is_extern(const Eolian_Error *err); lib.eolian_error_is_extern.argtypes = (c_void_p,) lib.eolian_error_is_extern.restype = c_bool + + +# Eolian Aux +# EAPI const Eolian_Implement *eolian_aux_implement_parent_get(const Eolian_Implement *impl); +lib.eolian_aux_implement_parent_get.argtypes = (c_void_p,) +lib.eolian_aux_implement_parent_get.restype = c_void_p + +# EAPI const Eolian_Documentation *eolian_aux_implement_documentation_get(const Eolian_Implement *impl, Eolian_Function_Type ftype); +lib.eolian_aux_implement_documentation_get.argtypes = (c_void_p, c_int) +lib.eolian_aux_implement_documentation_get.restype = c_void_p + +# EAPI const Eolian_Documentation *eolian_aux_implement_documentation_fallback_get(const Eolian_Implement *impl); +lib.eolian_aux_implement_documentation_fallback_get.argtypes = (c_void_p,) +lib.eolian_aux_implement_documentation_fallback_get.res
[EGIT] [core/efl] master 02/02: Pyolian gendoc: make link to events actually work
davemds pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=bc59a9c0a7d5f636a8461e4ca1be852fc06270b0 commit bc59a9c0a7d5f636a8461e4ca1be852fc06270b0 Author: Dave Andreoli Date: Mon Oct 7 21:17:10 2019 +0200 Pyolian gendoc: make link to events actually work --- src/scripts/gendoc/doc_class.template | 2 +- src/scripts/gendoc/doc_macros.include | 9 + 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/scripts/gendoc/doc_class.template b/src/scripts/gendoc/doc_class.template index 04910d619d..9c02ebc2b7 100644 --- a/src/scripts/gendoc/doc_class.template +++ b/src/scripts/gendoc/doc_class.template @@ -98,7 +98,7 @@ No extensions defined in this class. ^ Local implemented ^^ event info ^ -| ''${ev.name}$'' | ${BEST_SUMMARY(obj=ev)}$ ${OBJECT_SCOPE(obj=ev)}$ ${EVENT_TAGS}$| ${TYPE_LINK(type=ev.type) if ev.type else 'None'}$ | +| {{anchor:event_${ev.short_name.lower().replace(',','_')}$}}''${ev.name}$'' | ${BEST_SUMMARY(obj=ev)}$ ${OBJECT_SCOPE(obj=ev)}$ ${EVENT_TAGS}$| ${TYPE_LINK(type=ev.type) if ev.type else 'None'}$ | diff --git a/src/scripts/gendoc/doc_macros.include b/src/scripts/gendoc/doc_macros.include index 1527e09f43..6bb07af339 100644 --- a/src/scripts/gendoc/doc_macros.include +++ b/src/scripts/gendoc/doc_macros.include @@ -66,8 +66,10 @@ ${CLS_LINK(cls=token.ref_obj)}$.${FUNC_LINK(func=token.ref_attr)}$#! ${TYPEDECL_LINK(typedecl=token.ref_obj)}$#! ${CLS_LINK(cls=token.ref_obj)}$#! + +${EVENT_LINK(cls=token.ref_obj, ev=token.ref_attr)}$#! -**TODO REF ${token.ref_type}$**$#! +**TODO REF ${token.ref_type}$** #! ''${token.text}$''#! @@ -121,13 +123,12 @@ interface#! #! EVENT_LINK(cls, ev) ### #!## -[[:develop:api#! +''[[:develop:api#! :${n.lower()}$#! :${cls.short_name.lower()}$#! -:event#! -:${ev.short_name.lower().replace(',','_')}$|${ev.name}$]] +#event_${ev.short_name.lower().replace(',','_')}$|${ev.name}$]]'' #!## #! TYPEDECL_LINK(typedecl) ### --
[EGIT] [core/efl] master 01/01: Pyolian gendoc: add ability to generate only the stable API
davemds pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=3cdb87990aa92af0a395d70d04d608f49f76eb7f commit 3cdb87990aa92af0a395d70d04d608f49f76eb7f Author: Dave Andreoli Date: Mon Oct 7 19:38:50 2019 +0200 Pyolian gendoc: add ability to generate only the stable API gendoc.py --exclude-beta generate the docs excluding all the classes/types/etc in beta state, a bit hackish but do the job. There are some broken links around that refer to objects in beta state that are (correctly) not generated, nothing we can do to fix this. --- src/lib/eolian/Eolian_Aux.h | 2 +- src/scripts/gendoc/gendoc.py | 71 --- src/scripts/pyolian/eolian.py | 4 +++ 3 files changed, 65 insertions(+), 12 deletions(-) diff --git a/src/lib/eolian/Eolian_Aux.h b/src/lib/eolian/Eolian_Aux.h index a3c90fe744..3c025ccd6a 100644 --- a/src/lib/eolian/Eolian_Aux.h +++ b/src/lib/eolian/Eolian_Aux.h @@ -134,7 +134,7 @@ EAPI Eina_List *eolian_aux_function_all_implements_get(const Eolian_Function *fu EAPI const Eolian_Implement *eolian_aux_implement_parent_get(const Eolian_Implement *impl); /** - * @brief Get documentation for an implementaiton. + * @brief Get documentation for an implementation. * * This first checks if the implementation has documentation for the given * type. If so, it is returned; if not, parent implementations as specified diff --git a/src/scripts/gendoc/gendoc.py b/src/scripts/gendoc/gendoc.py index bee5161f0b..b1108b71fd 100755 --- a/src/scripts/gendoc/gendoc.py +++ b/src/scripts/gendoc/gendoc.py @@ -35,6 +35,8 @@ parser.add_argument('--root-path', '-r', metavar='FOLDER', default='dokuwiki', 'default to: "./dokuwiki"') parser.add_argument('--verbose', '-v', action='store_true', help='print a line for each rendered file') +parser.add_argument('--exclude-beta', '-e', action='store_true', +help='do not generate docs for class in beta state') parser.add_argument('--namespace', '-n', metavar='ROOT', default='Efl', help='root namespace of the docs. (default to "Efl")') _choices = ['start', 'classes', 'enums', 'structs', 'aliases'] @@ -78,9 +80,52 @@ def page_path_for_object(obj): return os.path.join(args.root_path, *path, output_filename) +class BetaNamespaceWrapper(eolian.Namespace): +""" A Namespace wrapper that hide objects marked as beta to the template """ +def __init__(self, eolian_ns): +super(BetaNamespaceWrapper, self).__init__(eolian_ns.unit, eolian_ns.name) +self._ns = eolian_ns + +@property +def sub_namespaces(self): +return [BetaNamespaceWrapper(ns) for ns in self._ns.sub_namespaces] + +@property +def classes(self): +return [c for c in self._ns.classes if not (args.exclude_beta and c.is_beta)] + +@property +def regulars(self): +return [c for c in self._ns.regulars if not (args.exclude_beta and c.is_beta)] + +@property +def abstracts(self): +return [c for c in self._ns.abstracts if not (args.exclude_beta and c.is_beta)] + +@property +def mixins(self): +return [c for c in self._ns.mixins if not (args.exclude_beta and c.is_beta)] + +@property +def interfaces(self): +return [c for c in self._ns.interfaces if not (args.exclude_beta and c.is_beta)] + +@property +def aliases(self): +return [c for c in self._ns.aliases if not (args.exclude_beta and c.is_beta)] + +@property +def structs(self): +return [c for c in self._ns.structs if not (args.exclude_beta and c.is_beta)] + +@property +def enums(self): +return [c for c in self._ns.enums if not (args.exclude_beta and c.is_beta)] + + # render a (temporary) page for analizying the namespaces hierarchy t = Template('namespaces.template') -nspaces = [ns for ns in eolian_db.all_namespaces +nspaces = [BetaNamespaceWrapper(ns) for ns in eolian_db.all_namespaces if ns.name.startswith(args.namespace)] tot_classes = tot_regulars = tot_abstracts = tot_mixins = tot_ifaces = 0 @@ -113,7 +158,7 @@ totals = [ ('Aliases', tot_aliases), ] -root_ns = eolian_db.namespace_get_by_name(args.namespace) +root_ns = BetaNamespaceWrapper(eolian_db.namespace_get_by_name(args.namespace)) output_file = os.path.join(args.root_path, 'data', 'pages', 'develop', 'api', 'namespaces.txt') t.render(output_file, args.verbose, root_ns=root_ns, totals=totals) @@ -123,7 +168,7 @@ t.render(output_file, args.verbose, root_ns=root_ns, totals=totals) if args.step in ('start', None): t = Template('doc_start.template') -nspaces = [ns for ns in eolian_db.all_namespaces +nspaces = [BetaNamespaceWrapper(ns) for ns in eolian_db.all_namespaces if ns.name.startswith(args.namespace)] output_file = os.path.join(args.root_path, 'data', 'pages', 'develop', 'ap
[EGIT] [core/efl] master 01/03: ci: fix return value warning in test build code
xartigas pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=b3cd430b0265c1ba7d46fea3f9211b5fc1490aa1 commit b3cd430b0265c1ba7d46fea3f9211b5fc1490aa1 Author: Mike Blumenkrantz Date: Mon Oct 7 18:40:09 2019 +0200 ci: fix return value warning in test build code Summary: this is a void function Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D10272 --- .ci/example/src/main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.ci/example/src/main.c b/.ci/example/src/main.c index 1d1230e496..61751a16a7 100644 --- a/.ci/example/src/main.c +++ b/.ci/example/src/main.c @@ -6,6 +6,6 @@ EAPI_MAIN void efl_main(void *data EINA_UNUSED, const Efl_Event *ev EINA_UNUSED) { - return 0; + return; } EFL_MAIN() --
[EGIT] [core/efl] master 02/03: efl_ui/win: fix max size hint eval
xartigas pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=eff717eb260e7bcac7ff4283942a239d0a4aa3f8 commit eff717eb260e7bcac7ff4283942a239d0a4aa3f8 Author: Mike Blumenkrantz Date: Mon Oct 7 18:40:10 2019 +0200 efl_ui/win: fix max size hint eval Summary: win objects should never permit the max size on any axis to be 0, otherwise the window will be clamped to 1px on the given axis fixes T8304 @fix Depends on D10272 Subscribers: cedric, #reviewers, #committers Tags: #efl Maniphest Tasks: T8304 Differential Revision: https://phab.enlightenment.org/D10296 --- src/lib/elementary/efl_ui_win.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lib/elementary/efl_ui_win.c b/src/lib/elementary/efl_ui_win.c index 2461e1e9e6..8ce3e59a81 100644 --- a/src/lib/elementary/efl_ui_win.c +++ b/src/lib/elementary/efl_ui_win.c @@ -3715,9 +3715,9 @@ _elm_win_resize_objects_eval(Evas_Object *obj, Eina_Bool force_resize) wx = wy = 1; if (!wx) maxw = minw; - else if (maxw < 1) maxw = 32767; + if (maxw < 1) maxw = 32767; if (!wy) maxh = minh; - else if (maxh < 1) maxh = 32767; + if (maxh < 1) maxh = 32767; if (maxw < minw) maxw = minw; if (maxh < minh) maxh = minh; if (maxw > 32767) maxw = 32767; --
[EGIT] [core/efl] master 03/03: efl_ui/win: initialize max size hints to -1 during constructor
xartigas pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=4f947925a1d51402d73aa252913eb6a43c0e7dce commit 4f947925a1d51402d73aa252913eb6a43c0e7dce Author: Mike Blumenkrantz Date: Mon Oct 7 18:49:19 2019 +0200 efl_ui/win: initialize max size hints to -1 during constructor Summary: this is just a cosmetic change for ease of debugging since it will already be clamped to max size during eval if it remains unchanged for max size hints a value of -1 means that the hint is unset but a value of 0 is technically valid depending on the implementation Depends on D10296 Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D10297 --- src/lib/elementary/efl_ui_win.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/lib/elementary/efl_ui_win.c b/src/lib/elementary/efl_ui_win.c index 8ce3e59a81..36ec921f61 100644 --- a/src/lib/elementary/efl_ui_win.c +++ b/src/lib/elementary/efl_ui_win.c @@ -5955,6 +5955,7 @@ _efl_ui_win_efl_object_constructor(Eo *obj, Efl_Ui_Win_Data *pd) pd->obj = obj; pd->provider = efl_add_ref(EFL_UI_FOCUS_PARENT_PROVIDER_STANDARD_CLASS, NULL); pd->profile.available = eina_array_new(4); + pd->max_w = pd->max_h = -1; // For bindings: if no parent, allow simple unref if (!efl_parent_get(obj)) --
[EGIT] [core/efl] master 01/01: docs: Remove redundant documentation
xartigas pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=5a447ed3273b6b80d9e48aea3cddfcafa1cb8c33 commit 5a447ed3273b6b80d9e48aea3cddfcafa1cb8c33 Author: Xavi Artigas Date: Mon Oct 7 16:40:50 2019 +0200 docs: Remove redundant documentation Lots of EO files had the same information at the property and set/get level. Removed the redundant bits, and moved to the property level the common ones. Set and Get documentation should be used only to clarify setter-only or getter-only behavior. --- src/lib/ecore/efl_loop_consumer.eo | 5 ++- src/lib/edje/efl_canvas_layout_part.eo | 1 - src/lib/edje/efl_layout_calc.eo| 2 -- src/lib/edje/efl_layout_group.eo | 2 +- src/lib/efl/interfaces/efl_gfx_filter.eo | 1 - src/lib/efl/interfaces/efl_gfx_hint.eo | 1 - .../interfaces/efl_gfx_image_load_controller.eo| 20 --- src/lib/efl/interfaces/efl_model.eo| 2 +- src/lib/efl/interfaces/efl_ui_drag.eo | 12 --- src/lib/efl/interfaces/efl_ui_i18n.eo | 2 -- src/lib/efl/interfaces/efl_ui_menu.eo | 8 ++--- src/lib/elementary/efl_access_text.eo | 3 +- src/lib/elementary/efl_access_value.eo | 3 +- src/lib/elementary/efl_ui_calendar.eo | 42 +- .../elementary/efl_ui_internal_text_scroller.eo| 4 +-- src/lib/elementary/efl_ui_theme.eo | 1 - src/lib/elementary/efl_ui_view_model.eo| 2 -- src/lib/elementary/efl_ui_widget.eo| 34 +- src/lib/elementary/efl_ui_win.eo | 21 ++- src/lib/evas/canvas/efl_canvas_group.eo| 1 - 20 files changed, 45 insertions(+), 122 deletions(-) diff --git a/src/lib/ecore/efl_loop_consumer.eo b/src/lib/ecore/efl_loop_consumer.eo index 35053265ea..e384240c0b 100644 --- a/src/lib/ecore/efl_loop_consumer.eo +++ b/src/lib/ecore/efl_loop_consumer.eo @@ -9,12 +9,11 @@ abstract Efl.Loop_Consumer extends Efl.Object c_prefix: efl_loop; methods { @property loop { - [[The loop to which this object belongs to.]] + [[Handle of the loop this object belongs to.]] get { -[[Gets a handle to the loop.]] } values { -loop: Efl.Loop; [[Efl loop]] +loop: Efl.Loop; [[Efl loop.]] } } future_resolved @const { diff --git a/src/lib/edje/efl_canvas_layout_part.eo b/src/lib/edje/efl_canvas_layout_part.eo index eed8aaf0de..9346cc68d5 100644 --- a/src/lib/edje/efl_canvas_layout_part.eo +++ b/src/lib/edje/efl_canvas_layout_part.eo @@ -27,7 +27,6 @@ class @beta Efl.Canvas.Layout_Part extends Efl.Object implements Efl.Gfx.Entity, @property part_type { [[Type of this part in the layout.]] get { -[[Returns the type of the part.]] } values { type: Efl.Canvas.Layout_Part_Type(Efl.Canvas.Layout_Part_Type.none); diff --git a/src/lib/edje/efl_layout_calc.eo b/src/lib/edje/efl_layout_calc.eo index 0417629b0e..1f77db64fc 100644 --- a/src/lib/edje/efl_layout_calc.eo +++ b/src/lib/edje/efl_layout_calc.eo @@ -26,10 +26,8 @@ interface Efl.Layout.Calc event. ]] set { -[[Enable or disable auto-update of size hints.]] } get { -[[Whether this object updates its size hints automatically.]] } values { update: bool(false); [[Whether or not update the size hints.]] diff --git a/src/lib/edje/efl_layout_group.eo b/src/lib/edje/efl_layout_group.eo index df1d9dc5ac..77113abc81 100644 --- a/src/lib/edje/efl_layout_group.eo +++ b/src/lib/edje/efl_layout_group.eo @@ -111,7 +111,7 @@ interface Efl.Layout.Group See also @Efl.Canvas.Layout_Part.part_type. ]] - get { [[Returns $true if the part exists in the EDC group.]] } + get {} keys { part: string; [[The part name to check.]] } diff --git a/src/lib/efl/interfaces/efl_gfx_filter.eo b/src/lib/efl/interfaces/efl_gfx_filter.eo index ed74c087fd..ecb306f5f3 100644 --- a/src/lib/efl/interfaces/efl_gfx_filter.eo +++ b/src/lib/efl/interfaces/efl_gfx_filter.eo @@ -59,7 +59,6 @@ interface @beta Efl.Gfx.Filter by using the function 'padding_set' in the Lua program. ]] get { -[[Gets the padding required to apply this filter.]] } values { l: int; [[Padding on the left]] diff --git a/src/lib/efl/interfaces/efl_gfx_hint.eo b/src/lib/efl/interfaces/efl_gfx_hint.eo index 5906b2523f..3511592ead 100644 --- a/src/lib/efl/interfaces/efl_gfx_hint.eo +++ b/src/lib/efl/interfaces/efl_gfx_hint.eo @@ -99,7 +99,6 @@ interface Efl.Gfx.Hint ]] } get { -[[
[EGIT] [core/efl] master 09/09: eldbus: properly cleanup local variable during destruction.
zmike pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=5cc9ea90c4a0381990e9fd961a99b74d0ce4fade commit 5cc9ea90c4a0381990e9fd961a99b74d0ce4fade Author: Cedric BAIL Date: Mon Oct 7 10:04:18 2019 -0400 eldbus: properly cleanup local variable during destruction. Summary: Depends on D10288 Reviewers: zmike, bu5hm4n, segfaultxavi, stefan_schmidt, jsuya Reviewed By: zmike Subscribers: ProhtMeyhet, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D10289 --- src/lib/eldbus/eldbus_model.c | 9 +++-- src/lib/eldbus/eldbus_signal_handler.c | 10 +- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/src/lib/eldbus/eldbus_model.c b/src/lib/eldbus/eldbus_model.c index 3fc4e66fcb..ee86ff54a5 100644 --- a/src/lib/eldbus/eldbus_model.c +++ b/src/lib/eldbus/eldbus_model.c @@ -54,8 +54,11 @@ _eldbus_model_connection_set(Eo *obj EINA_UNUSED, Eldbus_Model_Data *pd, Eldbus_Connection *dbus) { + Eldbus_Connection *tounref = pd->connection; + eldbus_connection_ref(dbus); - if (pd->connection) eldbus_connection_unref(pd->connection); + pd->connection = NULL; + if (tounref) eldbus_connection_unref(tounref); pd->connection = dbus; } @@ -77,8 +80,10 @@ _eldbus_model_efl_object_finalize(Eo *obj, Eldbus_Model_Data *pd) static void _eldbus_model_efl_object_invalidate(Eo *obj, Eldbus_Model_Data *pd) { - if (pd->connection) eldbus_connection_unref(pd->connection); + Eldbus_Connection *connection = pd->connection; + pd->connection = NULL; + if (connection) eldbus_connection_unref(connection); efl_invalidate(efl_super(obj, MY_CLASS)); } diff --git a/src/lib/eldbus/eldbus_signal_handler.c b/src/lib/eldbus/eldbus_signal_handler.c index dba557bbc1..3ed7cb3a71 100644 --- a/src/lib/eldbus/eldbus_signal_handler.c +++ b/src/lib/eldbus/eldbus_signal_handler.c @@ -241,14 +241,14 @@ _eldbus_signal_handler_del(Eldbus_Signal_Handler *handler) /* after cbs_free dispatch these shouldn't exit, error if they do */ - eina_stringshare_del(handler->sender); - eina_stringshare_del(handler->path); - eina_stringshare_del(handler->interface); - eina_stringshare_del(handler->member); + eina_stringshare_replace(&handler->sender, NULL); + eina_stringshare_replace(&handler->path, NULL); + eina_stringshare_replace(&handler->interface, NULL); + eina_stringshare_replace(&handler->member, NULL); eina_strbuf_free(handler->match); EINA_INLIST_FOREACH_SAFE(handler->args, list, arg) { -eina_stringshare_del(arg->value); +eina_stringshare_replace(&arg->value, NULL); free(arg); } eina_inlist_sorted_state_free(handler->state_args); --
[EGIT] [core/efl] master 02/09: efl_ui_datepicker: no need to delete the manager here
zmike pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=d52e77dcb7de133e951c37c1d010399d0308fb06 commit d52e77dcb7de133e951c37c1d010399d0308fb06 Author: Marcel Hollerbach Date: Mon Oct 7 09:38:05 2019 -0400 efl_ui_datepicker: no need to delete the manager here Summary: it is already picked up when datetime is invalidated, due to the correct parent beeing set. Reviewers: zmike Reviewed By: zmike Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D10291 --- src/lib/elementary/efl_ui_datepicker.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/lib/elementary/efl_ui_datepicker.c b/src/lib/elementary/efl_ui_datepicker.c index 8a6ee63985..c52c43437f 100644 --- a/src/lib/elementary/efl_ui_datepicker.c +++ b/src/lib/elementary/efl_ui_datepicker.c @@ -247,9 +247,8 @@ _efl_ui_datepicker_efl_object_constructor(Eo *obj, Efl_Ui_Datepicker_Data *pd) } EOLIAN static void -_efl_ui_datepicker_efl_object_destructor(Eo *obj, Efl_Ui_Datepicker_Data *pd) +_efl_ui_datepicker_efl_object_destructor(Eo *obj, Efl_Ui_Datepicker_Data *pd EINA_UNUSED) { - efl_del(pd->dt_manager); efl_destructor(efl_super(obj, MY_CLASS)); } --
[EGIT] [core/efl] master 06/09: eldbus: properly call parent finalize during creation of Eldbus.Model_Method.
zmike pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=e0187ce2ec409ceabf93664a0c6a4105676b2e66 commit e0187ce2ec409ceabf93664a0c6a4105676b2e66 Author: Cedric BAIL Date: Mon Oct 7 10:03:58 2019 -0400 eldbus: properly call parent finalize during creation of Eldbus.Model_Method. Summary: @fix Reviewers: zmike, bu5hm4n, segfaultxavi, stefan_schmidt, jsuya Reviewed By: bu5hm4n Subscribers: #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D10286 --- src/lib/eldbus/eldbus_model_method.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/eldbus/eldbus_model_method.c b/src/lib/eldbus/eldbus_model_method.c index dbdbdde831..fe18a4aaa9 100644 --- a/src/lib/eldbus/eldbus_model_method.c +++ b/src/lib/eldbus/eldbus_model_method.c @@ -37,7 +37,7 @@ _eldbus_model_method_efl_object_finalize(Eo *obj, Eldbus_Model_Method_Data *pd) pd->proxy, pd->method->name, pd->method->arguments); - return obj; + return efl_finalize(efl_super(obj, MY_CLASS)); } static void --
[EGIT] [core/efl] master 07/09: eldbus: Eldbus_Proxy require to handle self desctruction as refcounting doesn't fully protect.
zmike pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=7f91f6280d103c2c5148276b438adf5bbdcf373d commit 7f91f6280d103c2c5148276b438adf5bbdcf373d Author: Cedric BAIL Date: Mon Oct 7 10:04:05 2019 -0400 eldbus: Eldbus_Proxy require to handle self desctruction as refcounting doesn't fully protect. Summary: If the connection is destroyed before the proxy, the proxy will clear itself and self destroy. Before that it will trigger the free callback to handle proper cleanup. Refcounting it doesn't protect it from this self destruction scenario. So it is mandatory to always have a free callback set on a proxy to handle its death properly. Depends on D10286 Reviewers: zmike, bu5hm4n, segfaultxavi, stefan_schmidt, jsuya Reviewed By: zmike Subscribers: #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D10287 --- src/lib/eldbus/eldbus_model_arguments.c | 17 - 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/lib/eldbus/eldbus_model_arguments.c b/src/lib/eldbus/eldbus_model_arguments.c index ed6cbe2cce..ca0b6d68b4 100644 --- a/src/lib/eldbus/eldbus_model_arguments.c +++ b/src/lib/eldbus/eldbus_model_arguments.c @@ -39,6 +39,14 @@ _eldbus_model_arguments_efl_object_constructor(Eo *obj, Eldbus_Model_Arguments_D return efl_constructor(efl_super(obj, MY_CLASS)); } +static void +_cleanup_proxy_cb(void *data, const void *deadptr) +{ + Eldbus_Model_Arguments_Data *pd = data; + + if (pd->proxy == deadptr) pd->proxy = NULL; +} + static Efl_Object * _eldbus_model_arguments_efl_object_finalize(Eo *obj, Eldbus_Model_Arguments_Data *pd) { @@ -47,6 +55,8 @@ _eldbus_model_arguments_efl_object_finalize(Eo *obj, Eldbus_Model_Arguments_Data eldbus_model_connection_set(obj, eldbus_object_connection_get(eldbus_proxy_object_get(pd->proxy))); + eldbus_proxy_free_cb_add(pd->proxy, _cleanup_proxy_cb, pd); + return efl_finalize(efl_super(obj, MY_CLASS)); } @@ -73,7 +83,12 @@ _eldbus_model_arguments_efl_object_destructor(Eo *obj, Eldbus_Model_Arguments_Da eina_hash_free(pd->properties); eina_stringshare_del(pd->name); - eldbus_proxy_unref(pd->proxy); + if (pd->proxy) + { +eldbus_proxy_free_cb_del(pd->proxy, _cleanup_proxy_cb, pd); +eldbus_proxy_unref(pd->proxy); +pd->proxy = NULL; + } efl_destructor(efl_super(obj, MY_CLASS)); } --
[EGIT] [core/efl] master 01/09: c: coverity: resource leaked when using realloc.
zmike pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=f18a5b4389d1ed779998c9f07901fb49db28b279 commit f18a5b4389d1ed779998c9f07901fb49db28b279 Author: Bruno da Silva Belo Date: Mon Oct 7 09:02:10 2019 -0400 c: coverity: resource leaked when using realloc. Summary: from https://en.cppreference.com/w/c/memory/realloc ``` On success, returns the pointer to the beginning of newly allocated memory. To avoid a memory leak, the returned pointer must be deallocated with free() or realloc(). The original pointer ptr is invalidated and any access to it is undefined behavior (even if reallocation was in-place). On failure, returns a null pointer. The original pointer ptr remains valid and may need to be deallocated with free() or realloc(). ``` So a temporary to test if `realloc` failed then use the original pointer to use `free`. `CID1404749` `CID1404741` Reviewers: lauromoura, felipealmeida, zmike Reviewed By: zmike Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D10284 --- src/lib/elementary/efl_ui_caching_factory.c | 19 --- src/lib/elementary/efl_ui_widget_factory.c | 17 +++-- 2 files changed, 23 insertions(+), 13 deletions(-) diff --git a/src/lib/elementary/efl_ui_caching_factory.c b/src/lib/elementary/efl_ui_caching_factory.c index 7dbfc0aae9..5c714d99b8 100644 --- a/src/lib/elementary/efl_ui_caching_factory.c +++ b/src/lib/elementary/efl_ui_caching_factory.c @@ -201,15 +201,15 @@ _efl_ui_caching_factory_efl_ui_factory_create(Eo *obj, Efl_Ui_Caching_Factory_Data *pd, Eina_Iterator *models) { - Efl_Ui_Caching_Factory_Request *r; - Efl_Ui_Caching_Factory_Group_Request *gr; + Efl_Ui_Caching_Factory_Request *r = NULL; + Efl_Ui_Caching_Factory_Group_Request *gr = NULL; Efl_Gfx_Entity *w = NULL; - Efl_Model *model; - Eina_Future *f; + Efl_Model *model = NULL; + Eina_Future *f = NULL; if (pd->cache && pd->style && !pd->klass) { -Eina_Future **all; +Eina_Future **all = NULL; int count = 0; r = calloc(1, sizeof (Efl_Ui_Caching_Factory_Request)); @@ -228,8 +228,13 @@ _efl_ui_caching_factory_efl_ui_factory_create(Eo *obj, .success = _efl_ui_caching_factory_create_then, .data = r); - all = realloc(all, (count + 1) * sizeof (Eina_Future *)); - if (!all) goto alloc_array_error; + Eina_Future **tmp = realloc(all, (count + 1) * sizeof (Eina_Future *)); + if (!tmp) + { + free(all); + goto alloc_array_error; + } + all = tmp; } eina_iterator_free(models); diff --git a/src/lib/elementary/efl_ui_widget_factory.c b/src/lib/elementary/efl_ui_widget_factory.c index 13160af8e1..5ab9477a85 100644 --- a/src/lib/elementary/efl_ui_widget_factory.c +++ b/src/lib/elementary/efl_ui_widget_factory.c @@ -267,9 +267,9 @@ static Eina_Future * _efl_ui_widget_factory_efl_ui_factory_create(Eo *obj, Efl_Ui_Widget_Factory_Data *pd, Eina_Iterator *models) { - Efl_Ui_Widget_Factory_Request *r; - Eina_Future **f; - Efl_Model *model; + Efl_Ui_Widget_Factory_Request *r = NULL; + Eina_Future **f = NULL; + Efl_Model *model = NULL; int count = 0; if (!pd->klass) @@ -277,7 +277,7 @@ _efl_ui_widget_factory_efl_ui_factory_create(Eo *obj, Efl_Ui_Widget_Factory_Data if (!pd->style) { -Efl_Ui_Widget *w; +Efl_Ui_Widget *w = NULL; Eina_Value r; eina_value_array_setup(&r, EINA_VALUE_TYPE_OBJECT, 4); @@ -309,8 +309,13 @@ _efl_ui_widget_factory_efl_ui_factory_create(Eo *obj, Efl_Ui_Widget_Factory_Data .success = _efl_ui_widget_factory_create_then, .free = _efl_ui_widget_factory_single_cleanup); -f = realloc(f, (count + 1) * sizeof (Eina_Future *)); -if (!f) goto alloc_array_error; +Eina_Future** tmp = realloc(f, (count + 1) * sizeof (Eina_Future *)); +if (!tmp) + { +free(f); +goto alloc_array_error; + } +f = tmp; } eina_iterator_free(models); --
[EGIT] [core/efl] master 08/09: eldbus: connection are destroyed on invalidate, there is no point for any object to not cleanup on invalidate.
zmike pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=d28870daa7506bb73af4e92ee8b48c952f3d6aa6 commit d28870daa7506bb73af4e92ee8b48c952f3d6aa6 Author: Cedric BAIL Date: Mon Oct 7 10:04:12 2019 -0400 eldbus: connection are destroyed on invalidate, there is no point for any object to not cleanup on invalidate. Summary: This solve a bug when there is a change in order of destruction and you would expect the model to still work. Depends on D10287 Reviewers: zmike, bu5hm4n, segfaultxavi, stefan_schmidt, jsuya Reviewed By: bu5hm4n Subscribers: #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D10288 --- src/lib/eldbus/eldbus_model_arguments.c | 4 ++-- src/lib/eldbus/eldbus_model_arguments.eo | 2 +- src/lib/eldbus/eldbus_model_signal.c | 4 ++-- src/lib/eldbus/eldbus_model_signal.eo| 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/lib/eldbus/eldbus_model_arguments.c b/src/lib/eldbus/eldbus_model_arguments.c index ca0b6d68b4..817d896d0d 100644 --- a/src/lib/eldbus/eldbus_model_arguments.c +++ b/src/lib/eldbus/eldbus_model_arguments.c @@ -76,7 +76,7 @@ _eldbus_model_arguments_custom_constructor(Eo *obj EINA_UNUSED, } static void -_eldbus_model_arguments_efl_object_destructor(Eo *obj, Eldbus_Model_Arguments_Data *pd) +_eldbus_model_arguments_efl_object_invalidate(Eo *obj, Eldbus_Model_Arguments_Data *pd) { _eldbus_model_arguments_unload(pd); @@ -90,7 +90,7 @@ _eldbus_model_arguments_efl_object_destructor(Eo *obj, Eldbus_Model_Arguments_Da pd->proxy = NULL; } - efl_destructor(efl_super(obj, MY_CLASS)); + efl_invalidate(efl_super(obj, MY_CLASS)); } static Eina_Iterator * diff --git a/src/lib/eldbus/eldbus_model_arguments.eo b/src/lib/eldbus/eldbus_model_arguments.eo index 627ab680a7..15129041b1 100644 --- a/src/lib/eldbus/eldbus_model_arguments.eo +++ b/src/lib/eldbus/eldbus_model_arguments.eo @@ -25,7 +25,7 @@ class @beta Eldbus.Model.Arguments extends Eldbus.Model { implements { Efl.Object.constructor; Efl.Object.finalize; -Efl.Object.destructor; +Efl.Object.invalidate; Efl.Model.properties { get; } Efl.Model.property { set; get; } } diff --git a/src/lib/eldbus/eldbus_model_signal.c b/src/lib/eldbus/eldbus_model_signal.c index d1bb490195..5d05742870 100644 --- a/src/lib/eldbus/eldbus_model_signal.c +++ b/src/lib/eldbus/eldbus_model_signal.c @@ -43,11 +43,11 @@ _eldbus_model_signal_signal_constructor(Eo *obj EINA_UNUSED, } static void -_eldbus_model_signal_efl_object_destructor(Eo *obj, Eldbus_Model_Signal_Data *pd) +_eldbus_model_signal_efl_object_invalidate(Eo *obj, Eldbus_Model_Signal_Data *pd) { _eldbus_model_signal_callback_del(pd); - efl_destructor(efl_super(obj, MY_CLASS)); + efl_invalidate(efl_super(obj, MY_CLASS)); } diff --git a/src/lib/eldbus/eldbus_model_signal.eo b/src/lib/eldbus/eldbus_model_signal.eo index 722784037f..c5b6f2224f 100644 --- a/src/lib/eldbus/eldbus_model_signal.eo +++ b/src/lib/eldbus/eldbus_model_signal.eo @@ -14,7 +14,7 @@ class @beta Eldbus.Model.Signal extends Eldbus.Model.Arguments { } implements { Efl.Object.constructor; -Efl.Object.destructor; +Efl.Object.invalidate; } constructors { .signal_constructor; --
[EGIT] [core/efl] master 03/09: efl_ui_spec: introduce tests that ensure we are not leaking objects
zmike pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=b0ac1ec85f7290da7f8af7ddff30b3b501325ace commit b0ac1ec85f7290da7f8af7ddff30b3b501325ace Author: Marcel Hollerbach Date: Mon Oct 7 09:38:12 2019 -0400 efl_ui_spec: introduce tests that ensure we are not leaking objects Summary: with those two tests we are checking two things: - Check that there is no left out canvas object after the widget is invalidated but not deleted. For now this only deals with canvas objects. - Additionally this also ensures that ref;del;unref as well as simple del is never ever going to end up in a error, even with children beeing added. This pretty much mirrors the tests for legacy in 0d48cb46d45184608afa298f0f719e35688f , except that these tests do not check for evas parent contsruction vs. real widget parent construction. Which is intendet, as none-legacy widgets do error out when a not widget object is passed as parent. Depends on D10291 Reviewers: zmike Reviewed By: zmike Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D10292 --- src/tests/elementary/spec/efl_test_basics.c | 126 ++ src/tests/elementary/spec/efl_ui_spec_suite.h | 1 + src/tests/elementary/spec/meson.build | 1 + 3 files changed, 128 insertions(+) diff --git a/src/tests/elementary/spec/efl_test_basics.c b/src/tests/elementary/spec/efl_test_basics.c new file mode 100644 index 00..047e07d1d8 --- /dev/null +++ b/src/tests/elementary/spec/efl_test_basics.c @@ -0,0 +1,126 @@ +#ifdef HAVE_CONFIG_H +# include "elementary_config.h" +#endif + +#include +#include "efl_ui_spec_suite.h" +#include "suite_helpers.h" + +/* spec-meta-start + {"test-interface":"Efl.Ui.Widget", + "test-widgets": [ + "Efl.Ui.Image", + "Efl.Ui.Image_Zoomable", + "Efl.Ui.Box", + "Efl.Ui.Clock", + "Efl.Ui.Layout", + "Efl.Ui.List_View", + "Efl.Ui.Tab_Bar", + "Efl.Ui.Tags", + "Efl.Ui.Panel", + "Efl.Ui.Scroller", + "Efl.Ui.Slider", + "Efl.Ui.Calendar", + "Efl.Ui.Check", + "Efl.Ui.Panes", + "Efl.Ui.Grid", + "Efl.Ui.List", + "Efl.Ui.Spin", + "Efl.Ui.Spin_Button", + "Efl.Ui.Spotlight.Container", + "Efl.Ui.Popup", + "Efl.Ui.Alert_Popup", + "Efl.Ui.Slider_Interval", + "Efl.Ui.Frame", + "Efl.Ui.Progressbar", + "Efl.Ui.Video", + "Efl.Ui.Navigation_Layout", + "Efl.Ui.Bg", + "Efl.Ui.Datepicker", + "Efl.Ui.Grid_Default_Item", + "Efl.Ui.List_Default_Item", + "Efl.Ui.List_Placeholder_Item", + "Efl.Ui.Tab_Page", + "Efl.Ui.Timepicker", + "Efl.Ui.Navigation_Bar", + "Efl.Ui.Relative_Layout", + "Efl.Ui.Animation_View", + "Efl.Ui.Table", + "Efl.Ui.Flip" + ], + "custom-mapping" : { + "Efl.Ui.Grid" : "EFL_UI_GRID_DEFAULT_ITEM_CLASS", + "Efl.Ui.List" : "EFL_UI_LIST_DEFAULT_ITEM_CLASS", + "Efl.Ui.Tab_Bar" : "EFL_UI_TAB_BAR_DEFAULT_ITEM_CLASS" +} + } + + spec-meta-end */ + +EFL_START_TEST(no_leaking_canvas_object) +{ + Eina_List *not_invalidate = NULL; + Eina_Iterator *iter = eo_objects_iterator_new(); + Eo *obj; + + EINA_ITERATOR_FOREACH(iter, obj) + { +if (!efl_alive_get(obj)) continue; +if (!efl_isa(obj, EFL_CANVAS_OBJECT_CLASS)) continue; + +not_invalidate = eina_list_append(not_invalidate, obj); + } + eina_iterator_free(iter); + + //now try to will those widgets + if (efl_isa(widget, EFL_PACK_LINEAR_INTERFACE)) + { +for (int i = 0; i < 30; ++i) + { + Efl_Ui_Widget *w = create_test_widget(); + efl_pack_end(widget, w); + } + } + else if (efl_isa(widget, EFL_CONTENT_INTERFACE)) + { +efl_content_set(widget, create_test_widget()); + } + else if (efl_isa(widget, EFL_TEXT_INTERFACE)) + { +efl_text_set(widget, "Test Things!"); + } + //now reference things, and delete the widget again. This means, the widget will be invalidated. + efl_ref(widget); + efl_del(widget); + ck_assert_int_eq(efl_alive_get(widget), EINA_FALSE); + ck_assert_int_eq(efl_ref_count(widget), 1); + iter = eo_objects_iterator_new(); + + //now check if there are leaked objects from the widget + EINA_ITERATOR_FOREACH(iter, obj) + { +if (!efl_alive_get(obj)) continue; +if (!efl_isa(obj, EFL_CANVAS_OBJECT_CLASS)) continue; + +ck_assert_ptr_ne(eina_list_data_find(not_invalidate, obj), NULL); +
[EGIT] [core/efl] master 04/09: efl_ui_image: fix backward compatibility issue
zmike pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=5a684e0855ccdde5b6eedc9198d75fe8759aab84 commit 5a684e0855ccdde5b6eedc9198d75fe8759aab84 Author: WooHyun Jung Date: Mon Oct 7 09:38:14 2019 -0400 efl_ui_image: fix backward compatibility issue Summary: Previously, "anim" property was saved before checking evas-image's "animated" stated. This patch just corrects the issue. Reviewers: zmike, bu5hm4n, segfaultxavi Reviewed By: zmike Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D10293 --- src/lib/elementary/efl_ui_image.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/lib/elementary/efl_ui_image.c b/src/lib/elementary/efl_ui_image.c index 050f05e00f..b110e9d998 100644 --- a/src/lib/elementary/efl_ui_image.c +++ b/src/lib/elementary/efl_ui_image.c @@ -1749,6 +1749,9 @@ _efl_ui_image_animated_set_internal(Eo *obj, Efl_Ui_Image_Data *sd, Eina_Bool an return EINA_TRUE; } sd->img = elm_image_object_get(obj); + + if (elm_widget_is_legacy(obj)) sd->anim = anim; //legacy + if (!evas_object_image_animated_get(sd->img)) return EINA_FALSE; sd->anim = anim; --
[EGIT] [core/efl] master 05/09: efl_test_multi_selectable: ensure consistant state across mode switch
zmike pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=427a93c47fb6f84766952d56b80393f096d441c3 commit 427a93c47fb6f84766952d56b80393f096d441c3 Author: Marcel Hollerbach Date: Mon Oct 7 09:38:25 2019 -0400 efl_test_multi_selectable: ensure consistant state across mode switch Summary: When we are in multi, and switch back to single or none, we should ensure that the state is corrently. Same applies to single -> none. Reviewers: segfaultxavi, zmike Reviewed By: zmike Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D10277 --- .../elementary/spec/efl_test_multi_selectable.c| 52 ++ 1 file changed, 52 insertions(+) diff --git a/src/tests/elementary/spec/efl_test_multi_selectable.c b/src/tests/elementary/spec/efl_test_multi_selectable.c index 8f05ba1467..edd445ac5f 100644 --- a/src/tests/elementary/spec/efl_test_multi_selectable.c +++ b/src/tests/elementary/spec/efl_test_multi_selectable.c @@ -236,6 +236,55 @@ EFL_START_TEST(range_select2) } EFL_END_TEST +EFL_START_TEST(change_mode_from_multi_to_single) +{ + int sel = 0; + + efl_ui_selectable_select_mode_set(widget, EFL_UI_SELECT_MODE_MULTI); + efl_ui_selectable_all_select(widget); + efl_ui_selectable_select_mode_set(widget, EFL_UI_SELECT_MODE_SINGLE); + for (int i = 0; i < efl_content_count(widget); ++i) + { +if (efl_ui_selectable_selected_get(efl_pack_content_get(widget, i))) + sel ++; + } + ck_assert_int_eq(sel, 1); +} +EFL_END_TEST + + +EFL_START_TEST(change_mode_from_multi_to_none) +{ + int sel = 0; + + efl_ui_selectable_select_mode_set(widget, EFL_UI_SELECT_MODE_MULTI); + efl_ui_selectable_all_select(widget); + efl_ui_selectable_select_mode_set(widget, EFL_UI_SELECT_MODE_NONE); + for (int i = 0; i < efl_content_count(widget); ++i) + { +if (efl_ui_selectable_selected_get(efl_pack_content_get(widget, i))) + sel ++; + } + ck_assert_int_eq(sel, 0); +} +EFL_END_TEST + +EFL_START_TEST(change_mode_from_single_to_none) +{ + int sel = 0; + + efl_ui_selectable_select_mode_set(widget, EFL_UI_SELECT_MODE_SINGLE); + efl_ui_selectable_all_select(widget); + efl_ui_selectable_select_mode_set(widget, EFL_UI_SELECT_MODE_NONE); + for (int i = 0; i < efl_content_count(widget); ++i) + { +if (efl_ui_selectable_selected_get(efl_pack_content_get(widget, i))) + sel ++; + } + ck_assert_int_eq(sel, 0); +} +EFL_END_TEST + void efl_ui_multi_selectable_behavior_test(TCase *tc) { @@ -250,5 +299,8 @@ efl_ui_multi_selectable_behavior_test(TCase *tc) tcase_add_test(tc, range_unselect2); tcase_add_test(tc, range_select); tcase_add_test(tc, range_select2); + tcase_add_test(tc, change_mode_from_multi_to_single); + tcase_add_test(tc, change_mode_from_multi_to_none); + tcase_add_test(tc, change_mode_from_single_to_none); efl_ui_single_selectable_behavior_test(tc); } --
Re: [E-devel] [EGIT] [apps/terminology] master 01/01: tabs: show tabs that have a bell
On Sun, 6 Oct 2019 22:07:31 +0200 Boris Faure said: > > On 19-10-06 13:32, Carsten Haitzler wrote: > > On Sat, 05 Oct 2019 06:31:18 -0700 Boris Faure said: > > > > You forgot some signal to clear the bell state... :) > > This is not needed here but will be on my next commit :) i thought it'd be needed... :) thus it looked missing :) -- - Codito, ergo sum - "I code, therefore I am" -- Carsten Haitzler - ras...@rasterman.com ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[EGIT] [core/efl] efl-1.23 03/03: evil: make it clear in the docs that this library is private to efl
stefan pushed a commit to branch efl-1.23. http://git.enlightenment.org/core/efl.git/commit/?id=6d5b40233aafa7366051cb59a8c16a465e64d49f commit 6d5b40233aafa7366051cb59a8c16a465e64d49f Author: Stefan Schmidt Date: Mon Oct 7 10:55:02 2019 +0200 evil: make it clear in the docs that this library is private to efl Since the 1.23 release we are stricter with the use of evil. It is supposed to be used inside efl only and not exposed as API. Make this clear in the docs as well. Reviewed-by: Vincent Torri Differential Revision: https://phab.enlightenment.org/D10295 --- src/lib/evil/evil_main.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lib/evil/evil_main.h b/src/lib/evil/evil_main.h index 7c1f67d215..8c82046f91 100644 --- a/src/lib/evil/evil_main.h +++ b/src/lib/evil/evil_main.h @@ -20,8 +20,8 @@ * evilness is so huge that the most of the functions are not POSIX or * BSD compliant. * - * These functions are intended to be used in the Enlightenment - * Foundation Libraries only and can be compiled only on Windows, + * These functions are intended to be used inside the Enlightenment Foundation + * Libraries as private library and can be compiled only on Windows, * using MSYS/MinGW on Windows, and cross-compilation on Unix. This * library is minimal in the sense that only the functions needed to * compile the EFL are available. The purpose of this library is NOT --
[EGIT] [core/efl] efl-1.23 01/03: evil: bring back doxygen intro page for evil library
stefan pushed a commit to branch efl-1.23. http://git.enlightenment.org/core/efl.git/commit/?id=b57d0ae3ac43626320e2eb35dd8aa296ce16e232 commit b57d0ae3ac43626320e2eb35dd8aa296ce16e232 Author: Stefan Schmidt Date: Wed Oct 2 12:23:38 2019 +0200 evil: bring back doxygen intro page for evil library While we switched evil to be not a public AP, but internal lib only, we still want to have its documentation shown. Reviewed-by: Vincent Torri Differential Revision: https://phab.enlightenment.org/D10270 --- src/lib/evil/evil_main.h | 74 1 file changed, 74 insertions(+) diff --git a/src/lib/evil/evil_main.h b/src/lib/evil/evil_main.h index 963bf5e7c6..7c1f67d215 100644 --- a/src/lib/evil/evil_main.h +++ b/src/lib/evil/evil_main.h @@ -1,6 +1,80 @@ #ifndef __EVIL_MAIN_H__ #define __EVIL_MAIN_H__ +/** + * @page evil_main Evil + * @author Vincent Torri + * @date 2008 (created) + * + * @section toc Table of Contents + * + * @li @ref evil_main_intro + * @li @ref evil_main_ack + * @li @ref evil_main_compiling + * @li @ref evil_main_next_steps + * + * @section evil_main_intro Introduction + * + * The Evil library is an evil library that ports some evil Unix + * functions to the Windows (XP or above, or Mobile) platform. The + * evilness is so huge that the most of the functions are not POSIX or + * BSD compliant. + * + * These functions are intended to be used in the Enlightenment + * Foundation Libraries only and can be compiled only on Windows, + * using MSYS/MinGW on Windows, and cross-compilation on Unix. This + * library is minimal in the sense that only the functions needed to + * compile the EFL are available. The purpose of this library is NOT + * to have a full POSIX emulation et it is NOT a replacement of + * cygwin. To compare the size of the DLL themselves, Evil is around + * 33 KB and cygwin DLL is around 800 KB. + * + * @section evil_main_ack Acknowledgments + * + * This library has receive some from people interested in the EFL or + * not. Among them, evil thanks to Lars Munch, Raoul Hecky, Nicolas + * Aguirre, Tor Lillqvist, Lance Fetters, Vincent Richomme, Paul + * Vixie, Daniel Stenberg, who helped the author of the library in + * different fields (code and tests). + * + * @section evil_main_compiling How to compile + * + * Evil is a library your application links to. The procedure for + * this is very simple. You simply have to compile your application + * with the appropriate compiler flags that the @p pkg-config script + * outputs. For example: + * + * Compiling C or C++ files into object files: + * + * @verbatim + gcc -c -o main.o main.c `pkg-config --cflags evil` + @endverbatim + * + * Linking object files into a binary executable: + * + * @verbatim + gcc -o my_application main.o `pkg-config --libs evil` + @endverbatim + * + * See @ref pkgconfig + * + * @section evil_main_next_steps Next Steps + * + * After you understood what Evil is and installed it in your system + * you should proceed understanding the programming interface. + * + * Recommended reading: + * + * @li @ref Evil_Mman + * @li @ref Evil_Unistd_Group + * @li @ref Evil_Dlfcn + * @li @ref Evil_Locale_Group + * @li @ref Evil_Stdio_Group + * @li @ref Evil_Main_Group + * @li @ref Evil_String_Group + * @li @ref Evil_Stdlib_Group + * @li @ref Evil_Time_Group + */ /** * @file evil_main.h --
[EGIT] [core/efl] efl-1.23 02/03: evil: remove stray x character from docs section
stefan pushed a commit to branch efl-1.23. http://git.enlightenment.org/core/efl.git/commit/?id=95f87f4e43929244f08f103cac9b5573dc13202f commit 95f87f4e43929244f08f103cac9b5573dc13202f Author: Stefan Schmidt Date: Fri Oct 4 11:15:12 2019 +0200 evil: remove stray x character from docs section Reviewed-by: Vincent Torri Differential Revision: https://phab.enlightenment.org/D10294 --- src/lib/evil/evil_dlfcn.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/evil/evil_dlfcn.h b/src/lib/evil/evil_dlfcn.h index 9e39be5967..22f48b72ca 100644 --- a/src/lib/evil/evil_dlfcn.h +++ b/src/lib/evil/evil_dlfcn.h @@ -11,7 +11,7 @@ * @defgroup Evil_Dlfcn Functions that manage dynamic-link libraries. * @ingroup Evil * -x * This header provides functions to load and unload dynamic-link + * This header provides functions to load and unload dynamic-link * libaries, to get the address of a symbol, and to get diagnostic * information. */ --
[EGIT] [core/efl] master 03/03: evil: make it clear in the docs that this library is private to efl
stefan pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=55e865dd82a97ae582574fea9db0c028174498e3 commit 55e865dd82a97ae582574fea9db0c028174498e3 Author: Stefan Schmidt Date: Mon Oct 7 10:55:02 2019 +0200 evil: make it clear in the docs that this library is private to efl Since the 1.23 release we are stricter with the use of evil. It is supposed to be used inside efl only and not exposed as API. Make this clear in the docs as well. Reviewed-by: Vincent Torri Differential Revision: https://phab.enlightenment.org/D10295 --- src/lib/evil/evil_main.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lib/evil/evil_main.h b/src/lib/evil/evil_main.h index 7c1f67d215..8c82046f91 100644 --- a/src/lib/evil/evil_main.h +++ b/src/lib/evil/evil_main.h @@ -20,8 +20,8 @@ * evilness is so huge that the most of the functions are not POSIX or * BSD compliant. * - * These functions are intended to be used in the Enlightenment - * Foundation Libraries only and can be compiled only on Windows, + * These functions are intended to be used inside the Enlightenment Foundation + * Libraries as private library and can be compiled only on Windows, * using MSYS/MinGW on Windows, and cross-compilation on Unix. This * library is minimal in the sense that only the functions needed to * compile the EFL are available. The purpose of this library is NOT --
[EGIT] [core/efl] master 02/03: evil: remove stray x character from docs section
stefan pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=370697b50c7b5b6f48f3827963ebd8ab6783f6c6 commit 370697b50c7b5b6f48f3827963ebd8ab6783f6c6 Author: Stefan Schmidt Date: Fri Oct 4 11:15:12 2019 +0200 evil: remove stray x character from docs section Reviewed-by: Vincent Torri Differential Revision: https://phab.enlightenment.org/D10294 --- src/lib/evil/evil_dlfcn.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/evil/evil_dlfcn.h b/src/lib/evil/evil_dlfcn.h index 9e39be5967..22f48b72ca 100644 --- a/src/lib/evil/evil_dlfcn.h +++ b/src/lib/evil/evil_dlfcn.h @@ -11,7 +11,7 @@ * @defgroup Evil_Dlfcn Functions that manage dynamic-link libraries. * @ingroup Evil * -x * This header provides functions to load and unload dynamic-link + * This header provides functions to load and unload dynamic-link * libaries, to get the address of a symbol, and to get diagnostic * information. */ --
[EGIT] [core/efl] master 01/03: evil: bring back doxygen intro page for evil library
stefan pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=b4e943ef3ea6f7c0830558ba10f2499c456b1556 commit b4e943ef3ea6f7c0830558ba10f2499c456b1556 Author: Stefan Schmidt Date: Wed Oct 2 12:23:38 2019 +0200 evil: bring back doxygen intro page for evil library While we switched evil to be not a public AP, but internal lib only, we still want to have its documentation shown. Reviewed-by: Vincent Torri Differential Revision: https://phab.enlightenment.org/D10270 --- src/lib/evil/evil_main.h | 74 1 file changed, 74 insertions(+) diff --git a/src/lib/evil/evil_main.h b/src/lib/evil/evil_main.h index 963bf5e7c6..7c1f67d215 100644 --- a/src/lib/evil/evil_main.h +++ b/src/lib/evil/evil_main.h @@ -1,6 +1,80 @@ #ifndef __EVIL_MAIN_H__ #define __EVIL_MAIN_H__ +/** + * @page evil_main Evil + * @author Vincent Torri + * @date 2008 (created) + * + * @section toc Table of Contents + * + * @li @ref evil_main_intro + * @li @ref evil_main_ack + * @li @ref evil_main_compiling + * @li @ref evil_main_next_steps + * + * @section evil_main_intro Introduction + * + * The Evil library is an evil library that ports some evil Unix + * functions to the Windows (XP or above, or Mobile) platform. The + * evilness is so huge that the most of the functions are not POSIX or + * BSD compliant. + * + * These functions are intended to be used in the Enlightenment + * Foundation Libraries only and can be compiled only on Windows, + * using MSYS/MinGW on Windows, and cross-compilation on Unix. This + * library is minimal in the sense that only the functions needed to + * compile the EFL are available. The purpose of this library is NOT + * to have a full POSIX emulation et it is NOT a replacement of + * cygwin. To compare the size of the DLL themselves, Evil is around + * 33 KB and cygwin DLL is around 800 KB. + * + * @section evil_main_ack Acknowledgments + * + * This library has receive some from people interested in the EFL or + * not. Among them, evil thanks to Lars Munch, Raoul Hecky, Nicolas + * Aguirre, Tor Lillqvist, Lance Fetters, Vincent Richomme, Paul + * Vixie, Daniel Stenberg, who helped the author of the library in + * different fields (code and tests). + * + * @section evil_main_compiling How to compile + * + * Evil is a library your application links to. The procedure for + * this is very simple. You simply have to compile your application + * with the appropriate compiler flags that the @p pkg-config script + * outputs. For example: + * + * Compiling C or C++ files into object files: + * + * @verbatim + gcc -c -o main.o main.c `pkg-config --cflags evil` + @endverbatim + * + * Linking object files into a binary executable: + * + * @verbatim + gcc -o my_application main.o `pkg-config --libs evil` + @endverbatim + * + * See @ref pkgconfig + * + * @section evil_main_next_steps Next Steps + * + * After you understood what Evil is and installed it in your system + * you should proceed understanding the programming interface. + * + * Recommended reading: + * + * @li @ref Evil_Mman + * @li @ref Evil_Unistd_Group + * @li @ref Evil_Dlfcn + * @li @ref Evil_Locale_Group + * @li @ref Evil_Stdio_Group + * @li @ref Evil_Main_Group + * @li @ref Evil_String_Group + * @li @ref Evil_Stdlib_Group + * @li @ref Evil_Time_Group + */ /** * @file evil_main.h --
[EGIT] [core/efl] master 01/01: ecore : fix incorrect size of expression for coverity
hermet pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=34fa84a1711599ac02239b7d32cb9b24bad350a0 commit 34fa84a1711599ac02239b7d32cb9b24bad350a0 Author: Jongmin Lee Date: Mon Oct 7 15:59:18 2019 +0900 ecore : fix incorrect size of expression for coverity Summary: correct bad use of sizeof function (detected by coverity tool) Test Plan: N/A Reviewers: Hermet, woohyun, kimcinoo, cedric, jsuya Reviewed By: Hermet Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D10281 --- src/lib/ecore/efl_boolean_model.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/ecore/efl_boolean_model.c b/src/lib/ecore/efl_boolean_model.c index 4c440f1ffb..3d9aef668d 100644 --- a/src/lib/ecore/efl_boolean_model.c +++ b/src/lib/ecore/efl_boolean_model.c @@ -105,7 +105,7 @@ _storage_lookup(Efl_Boolean_Model_Data *pd, lookup->offset = v->last ? v->last->offset + v->last->length + 1 : 0; lookup->length = sizeof (lookup->buffer) * 8; // Number of bits in the buffer // Initialize the buffer to the right default value -if (default_value) memset(&lookup->buffer[0], *default_value, sizeof (&lookup->buffer)); +if (default_value) memset(&lookup->buffer[0], *default_value, sizeof (lookup->buffer)); v->buffers_root = eina_rbtree_inline_insert(v->buffers_root, EINA_RBTREE_GET(lookup), EINA_RBTREE_CMP_NODE_CB(_storage_range_cmp), NULL); --