Commit Graph

57267 Commits

Author SHA1 Message Date
Daniel Kolesa d47610a732 eolian: do not require unit when stringifying types
As it is no longer necessary to pass unit when evaluating exprs,
it is not necessary to pass it here either. Convert all the APIs
to the new style and update all instances in our tree.
2018-01-16 16:39:05 +01:00
Daniel Kolesa dd2e579fec eolian: do not require unit for expr eval APIs
The necessary information is now stored directly in the expr
during database validation.

Also enable expr validation for params.
2018-01-16 16:37:52 +01:00
Daniel Kolesa b70604d018 eolian: cache enum expr in the database 2018-01-16 16:37:52 +01:00
Daniel Kolesa 29a9b9ad44 eolian: expose _eval_type to internals 2018-01-16 16:37:52 +01:00
Jean-Philippe Andre 5555726fef examples: Show off usage of "background" part
See bg_cxx_example_01
2018-01-16 22:04:55 +09:00
Jean-Philippe Andre ccf90aa0e4 widget: Expose "background" part (for bindings) 2018-01-16 22:04:55 +09:00
Jean-Philippe Andre 854cce329a cxx: Remove elm_widget.h from Elementary.hh
It's internal.
2018-01-16 22:04:55 +09:00
Jean-Philippe Andre 2686742587 selection: Fix two remaining warnings 2018-01-16 22:04:55 +09:00
Jean-Philippe Andre f1dd333e81 animation: Fix some warnings including a real one
Real issue here:

.../efl_animation_group.c:120:40: warning: for loop has empty body [-Wempty-body]
   EINA_LIST_FREE(pd->animations, anim);
2018-01-16 22:04:55 +09:00
Sungtaek Hong 588995da31 efl_playable: split Efl.Player interface to Efl.Playable interface
Summary:
Efl.Player interface simply provides play functions,
but another interface which indicates Efl.Player will play is also
needed.

Test Plan: Run elementary_test->Efl.Animation tests

Reviewers: woohyun, conr2d, Jaehyun_Cho, jpeg, cedric

Differential Revision: https://phab.enlightenment.org/D5662
2018-01-16 22:04:55 +09:00
Amitesh Singh 1da72770f3 Efl.Ui.Progressbar: Add Efl.Ui.Translatable/Markable too.
it was missed in previous patch.
2018-01-16 20:35:56 +09:00
Amitesh Singh 4e3d71ef22 Efl.Ui.Progressbar: Add missing Efl.Text/Content 2018-01-16 20:15:10 +09:00
Jean-Philippe Andre dd2f450ea7 eo: Fix make check
The cache had a generation count, removing this check breaks eo suite.
EO is designed to tolerate init/shutdown cycles (as long as
dlopen/dlclose isn't involved).

Note: the ugly goto are useless as GCC -O2 understands EINA_(UN)LIKELY
and deals with it as expected (just look at the asm produced).

See 34d9f20706
2018-01-16 19:50:52 +09:00
Jean-Philippe Andre 8b4abdcd0e eo: Remove unused goto label 2018-01-16 19:35:54 +09:00
Jean-Philippe Andre df1900b9bd edje: Add beta event when an invalid part is used
This can be used for debugging, by listening to
  EFL_LAYOUT_EVENT_PART_INVALID

Or just use
  EINA_LOG_LEVELS=edje:2
if you just need the logs.
2018-01-16 19:35:54 +09:00
Jean-Philippe Andre eb9f35bcb9 panes: Fix invalid part name in layout recalc 2018-01-16 19:35:54 +09:00
Jean-Philippe Andre e592a0ab5b code widget: Fix order of operations
super functions, when creating stuff, should be called first.
2018-01-16 19:35:54 +09:00
Jean-Philippe Andre 001fa5af11 edje: add invalid part handler 2018-01-16 19:35:54 +09:00
Jean-Philippe Andre a92186be6a ecore/edje/elm: Fix a few WRN from calls to NULL
This fixes some of the warnings generated by calling functions on NULL
objects. One of the main remaining points is to avoid unwanted warnings
on non-existing parts.

Ref T6326
2018-01-16 18:37:05 +09:00
Jean-Philippe Andre f2b5b00ca2 eo: Warn on calls to NULL object
This makes eo print a WRN message in case a function is called on NULL.
efl_del is an exception to this rule (implemented in a hackish way, I
admit). I don't know any language or object model where using a null
object doesn't result in an exception or crash, except EO. In any case,
calls to null are invalid.

The next commits will resolve most warnings for EFL.

Ref T6326
2018-01-16 18:37:05 +09:00
Jean-Philippe Andre f47f8dcf82 evas: Remove stupid warning 2018-01-16 18:37:04 +09:00
Jean-Philippe Andre 9e2f2970b8 edje: Add property "part_exist"
This allows to safely verify if a part exists, without triggering any
potential call to NULL object, or even requiring the efl_part() handle
to be created.

This is perfectly equivalent to edje_object_part_exists(), but
implemented by both edje object and elm layout.
2018-01-16 18:37:04 +09:00
Jean-Philippe Andre d133336399 selection: Disable debug logs
selection's namespacing still requires some love
2018-01-16 18:36:47 +09:00
Carsten Haitzler 4800ce4635 elm genlist test - don't overflow test time nanoseconds if system slow
with a long enough test or slow enough machine these do overflow so
force everything to unsigned long long's for genlist test performance
measuring.
2018-01-16 17:50:46 +09:00
Jean Guyomarc'h 34d9f20706 eina: remove usless newline
Summary:
ecore_evas: remove debug

eina: unregister log level when done with

Fixes a constant memory leak.

eina: introduce EINA_HOT and EINA_COLD

These attributes respectivelly expand to __attribute__ ((hot)) and
__attribute__ ((cold)) when available. They allow to mark functions are
being hot/cold (frequently used or not) as well as to qualify labels
within a function (likely/unlikely branches).

eo: speed-up generated calls by removing call cache

The call cache needed to by thread-local, to avoid concurrency issues.
Problem with TLS is that is adds an extra overhead, which appears to be
greater than the optimization the cache provides.

Op is naturally atomic, because it is an unsigned integer. As such, it
cannot be tempered with while another thread is reading it. When
entering the generated function, the first operation done is reading
'op'. If we have concurrency, we will have access sequences returning
either EFL_NOOP or a VALID op, because 'op' is not set until the very
end of the function, when everything has been computed. As such, we now
use the 'op' atomic integer to instore a lock-free/wait-free mechanism,
which allows to drop the TLS nature of the cache, speeding up the access
to the cache, and therefore making functions execute faster.

We don't test anymore the generation count. This can be put as a
limitation. If means that if you call efl_object_shutdown() and
re-initialize it later with different data, opcodes will be invalid.
I am not sure there is any usecase for this to ever happen.
We could move all the caches in a dedicated section, that can be
overwritten after a call to efl_object_shutdown(), but I am not sure it
will be very portable.

Benchmark: mean over 3 executions of
   ELM_TEST_AUTOBOUNCE=100 time elementary_test -to genlist

```
                     BEFORE               AFTER
------------------------------------------------------------
time (ns)            11114111647.0        9147676220.0
frames               2872.3333333333335   2904.6666666666665
time per frame (ns)  3869364.6666666665   3149535.3333333335
user time (s)        11.096666666666666   9.22
cpu (%)              22.666666666666668   18.333333333333332
```

Ref T6580

Reviewers: raster, cedric

Subscribers: cedric, jpeg

Maniphest Tasks: T6580

Differential Revision: https://phab.enlightenment.org/D5738
2018-01-16 17:50:46 +09:00
Carsten Haitzler 574ef9a5e5 efl wl - fix segv where garbage ptr to comp surface is still there
comp surface destruction doesnt clear the pointer to one in the comp
struct that then is garbage later. fix.
2018-01-16 17:49:52 +09:00
Thiep Ha 07e7bbd4b5 selection_dnd: fix warnings in clang
Fix warnings about type convert and vars init in clang and remove comments.
2018-01-16 16:35:14 +09:00
Jaeun Choi d36c849e20 elm_panel: add exception handling in _drawer_close()
this fixes a bug with scrollable panel not being blocked
when it is closed. scroll is blocked in _anim_stop_cb()
which is called after elm_interface_scrollable_region_bring_in().
but if panel content is already at the target position, _anim_stop_cb()
is not called. so there is a need to check content's position and
handle the exceptional case.
2018-01-16 14:57:38 +09:00
Jaeun Choi 4f2b04c7a2 Revert "elm_panel: add exception handling in _drawer_close()"
This reverts commit 2acfc3e381.
2018-01-16 14:48:11 +09:00
Jaeun Choi 2acfc3e381 elm_panel: add exception handling in _drawer_close()
this fixes a bug with scrollable panel not being blocked
when it is closed. scroll is blocked in _anim_stop_cb(),
which is called after elm_interface_scrollable_region_bring_in().
but if panel content is already at the target position, _anim_stop_cb()
is not called. so there is a need to check content's position and
handle the exceptional case.
2018-01-16 14:42:58 +09:00
Jaeun Choi 65b828b050 elm_panel: prevent redundant callback function addition or deletion
there is a need to check if callback functions already exist or not
before adding or deleting them, because they are added or deleted
at two points:
in _elm_panel_scrollable_set() and _elm_panel_elm_widget_disable().
2018-01-16 13:19:36 +09:00
Cedric Bail 631eb3701d ecore: forgotten EFL_MAIN_EX. 2018-01-15 14:22:27 -08:00
Boris Faure a8d2c6c42f elementary dnd: fix tautology 2018-01-15 21:30:28 +01:00
YeongJong Lee f7849d0727 elc_popup: reorder the sub objects free sequence
Summary:
when the popup is deleted, some EVAS_CALLBACK_DEL callback functions
try to use already freed objects.
reorder free sequence to prevent it.

Test Plan:
1. elementary_test -to popup
2. check 'Enable popup scroll'
3. open several popup test and click Close button.
4. check that there are no error message

Reviewers: Jaehyun_Cho, bu5hm4n

Reviewed By: Jaehyun_Cho

Subscribers: cedric, jpeg, herb

Differential Revision: https://phab.enlightenment.org/D5730
2018-01-15 19:55:37 +09:00
Stefan Schmidt 8fc21da029 examples: efl_ui_list: remove unused variables 2018-01-15 10:41:58 +01:00
Stefan Schmidt ef71e2550c examples: calendar_cxx: comment out unused variables
I normally would simply remove them, but they belong to some more
commented out code below. We should either remove both or get this
fixed.
2018-01-15 10:40:39 +01:00
Stefan Schmidt 2cc63bb8b2 examples: cxx: avoid tick in warning message
The compiler is not to happy about having this tick in the warning
message. Switch to the more formal can not and be done with it.

menu_cxx_example_01.cc:3:26: warning: missing terminating ' character
2018-01-15 10:38:36 +01:00
WooHyun Jung 9fc1dd1a4e ecore_file_monitor: replace EINA_LIST_FOREACH to EINA_LIST_FOREACH_SAFE
If ecore_file_monitor_del is called inside the file monitor callback function,
eina_list found from monitor_hash would be freed. (You can check this inside
eina_hash_list_remove.)
Then, EINA_LIST_FOREACH makes one more for loop with invalid eina_list pointer.

EINA_LIST_FOREACH_SAFE can prevent from this problem.
2018-01-15 13:54:01 +09:00
Vincent Torri 487f2a5f81 Ecore_Win32: move monitor window initialization to earlier in init func
Summary: This monitor window is just used to receive events when mutiple
monitors are available. it should not be managed by the ecore loop
(creation and destruction events), so initting it earlier means
ecore_win32 attaches less memory/overhead to it as it's just being
used for notifications for devices.

Test Plan: DrMemory to check used memory

Reviewers: cedric

Subscribers: jpeg

Differential Revision: https://phab.enlightenment.org/D5736
2018-01-14 22:33:34 +09:00
Davide Andreoli 0179d34f0f Pyolian: add tests for recently added funcs 2018-01-14 12:05:33 +01:00
Andy Williams 939237ad7f Correct module name for the interface context 2018-01-14 00:21:35 +00:00
Andy Williams 8a71ac57ab docs: Show when classes really are top level EFL namespace 2018-01-14 00:05:59 +00:00
Carsten Haitzler 90e186a0c8 ecore_audio wasapi - fix ecore win32 handler deletion and destruction
vtorri pointed this out in T6607. this should fix this.

fixed T6607

@fix
2018-01-13 14:46:08 +09:00
Vincent Torri 83b91fff02 Evil: remove useless dirent code
Test Plan: compilation of the EFL

Reviewers: cedric

Subscribers: jpeg

Differential Revision: https://phab.enlightenment.org/D5735

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2018-01-12 13:34:32 -08:00
Mike Blumenkrantz abc88c498e efl-wl: multiply axis events by 10 to send normalized values
ref T6443
2018-01-12 16:03:12 -05:00
Mike Blumenkrantz 60028fafb7 efl-wl: unset cursor role on existing cursor surface if new cursor is set
this avoids killing clients which replace cursors

@fix
2018-01-12 15:49:06 -05:00
Mike Blumenkrantz b585dd0de7 elm_tooltip: immediately show tooltip if callback is set for obj under pointer
@fix
2018-01-12 14:58:34 -05:00
Mike Blumenkrantz 6822927988 elm_tooltip: force immediate hint recalc during tooltip creation if 0x0 size
try to avoid initial 0x0 sized tooltips

@fix
2018-01-12 14:58:34 -05:00
Mike Blumenkrantz d176fbc806 efl-wl: return NULL without error when non-extracted parent is found
in  efl_wl_extracted_surface_extracted_parent_get()
2018-01-12 14:58:34 -05:00
Bryce Harrington ebdfc54def eina: document quadtree
Reviewers: cedric, ajwillia.ms

Subscribers: segfaultxavi, jpeg

Differential Revision: https://phab.enlightenment.org/D5522

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2018-01-12 11:25:04 -08:00