summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHermet Park <hermetpark@gmail.com>2020-02-13 11:13:42 +0900
committerHermet Park <hermetpark@gmail.com>2020-02-13 11:13:42 +0900
commit1ca4088e4880eee48d29fdcb8a3d1a5b8909d103 (patch)
tree103a89370170f4745092f197d720a2bb4d935e6e
parentee9c6427341291b46becd7d7cad8542e783e60e5 (diff)
parent2636853b7f4b3f630af1403fcaaadd638354a1ee (diff)
Merge branch 'master' into devs/hermet/lottie
-rwxr-xr-x.ci/ci-exactness.sh15
-rw-r--r--.travis.yml4
-rw-r--r--src/bin/edje/edje_cc_handlers.c2
-rw-r--r--src/bin/eolian_mono/eolian/mono/name_helpers.hh14
-rw-r--r--src/bin/exactness/player.c3
-rw-r--r--src/lib/eina/eina_promise.c1
-rw-r--r--src/lib/eio/efl_io_manager.eo4
-rw-r--r--src/lib/elementary/efl_ui_panes.c4
-rw-r--r--src/lib/elementary/efl_ui_panes.eo4
-rw-r--r--src/lib/elementary/efl_ui_position_manager_list.c1
-rw-r--r--src/lib/elementary/elc_fileselector.c15
-rw-r--r--src/lib/elementary/elm_interface_scrollable.c3
-rw-r--r--src/lib/eo/eo_base_class.c1
-rw-r--r--src/lib/eo/eo_ptr_indirection.x7
-rw-r--r--src/lib/evas/canvas/evas_object_image.c2
-rw-r--r--src/tests/elementary/efl_ui_test_layout.c5
16 files changed, 66 insertions, 19 deletions
diff --git a/.ci/ci-exactness.sh b/.ci/ci-exactness.sh
new file mode 100755
index 0000000..6371de3
--- /dev/null
+++ b/.ci/ci-exactness.sh
@@ -0,0 +1,15 @@
1#!/bin/sh
2
3set -e
4. .ci/travis.sh
5
6if [ "$1" != "exactness" ] ; then
7 exit 0
8fi
9
10travis_fold exactness "exactness"
11if [ "$DISTRO" != "" ] ; then
12 docker exec --env EIO_MONITOR_POLL=1 $(cat $HOME/cid) sh -c 'git -C /exactness-elm-data pull'
13 docker exec --env EIO_MONITOR_POLL=1 --env LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib:/usr/local/lib64 --env EINA_LOG_LEVELS_GLOB=eina_*:0,ecore*:0,efreet*:0,eldbus:0,elementary:0 $(cat $HOME/cid) exactness -j 20 -b /exactness-elm-data/default-profile -p /exactness-elm-data/default-profile/ci-integration-tests.txt
14fi
15travis_endfold exactness
diff --git a/.travis.yml b/.travis.yml
index 89a213a..7e7aa23 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -76,6 +76,9 @@ jobs:
76 env: DISTRO=Fedora31 CI_BUILD_TYPE=asan 76 env: DISTRO=Fedora31 CI_BUILD_TYPE=asan
77 - os: linux 77 - os: linux
78 if: type = cron 78 if: type = cron
79 env: DISTRO=Fedora31-exactness CI_BUILD_TYPE=exactness
80 - os: linux
81 if: type = cron
79 env: CI_BUILD_TYPE=codecov 82 env: CI_BUILD_TYPE=codecov
80 - os: linux 83 - os: linux
81 if: type = cron 84 if: type = cron
@@ -114,6 +117,7 @@ script:
114 - .ci/ci-make-install.sh "$CI_BUILD_TYPE" 117 - .ci/ci-make-install.sh "$CI_BUILD_TYPE"
115 - .ci/ci-make-benchmark.sh "$CI_BUILD_TYPE" 118 - .ci/ci-make-benchmark.sh "$CI_BUILD_TYPE"
116 - .ci/ci-make-check.sh "$CI_BUILD_TYPE" 119 - .ci/ci-make-check.sh "$CI_BUILD_TYPE"
120 - .ci/ci-exactness.sh "$CI_BUILD_TYPE"
117 - .ci/ci-make-distcheck.sh "$CI_BUILD_TYPE" 121 - .ci/ci-make-distcheck.sh "$CI_BUILD_TYPE"
118 - .ci/ci-build-test.sh "$CI_BUILD_TYPE" 122 - .ci/ci-build-test.sh "$CI_BUILD_TYPE"
119 123
diff --git a/src/bin/edje/edje_cc_handlers.c b/src/bin/edje/edje_cc_handlers.c
index 106a47b..d78e6e4 100644
--- a/src/bin/edje/edje_cc_handlers.c
+++ b/src/bin/edje/edje_cc_handlers.c
@@ -11749,7 +11749,7 @@ st_collections_group_parts_part_description_text_fit_size_array(void)
11749 for (n = 0, argc = get_arg_count(); n < argc; n++) 11749 for (n = 0, argc = get_arg_count(); n < argc; n++)
11750 { 11750 {
11751 unsigned int *value = malloc(sizeof(unsigned int)); 11751 unsigned int *value = malloc(sizeof(unsigned int));
11752 *value = (unsigned int) parse_int(n); 11752 if (value) *value = (unsigned int) parse_int(n);
11753 ed->text.fit_size_array = eina_list_append(ed->text.fit_size_array, value); 11753 ed->text.fit_size_array = eina_list_append(ed->text.fit_size_array, value);
11754 } 11754 }
11755} 11755}
diff --git a/src/bin/eolian_mono/eolian/mono/name_helpers.hh b/src/bin/eolian_mono/eolian/mono/name_helpers.hh
index a6e94ea..1294bf0 100644
--- a/src/bin/eolian_mono/eolian/mono/name_helpers.hh
+++ b/src/bin/eolian_mono/eolian/mono/name_helpers.hh
@@ -229,6 +229,12 @@ inline std::string managed_namespace(std::string const& ns)
229 return escape_keyword(utils::remove_all(ns, '_')); 229 return escape_keyword(utils::remove_all(ns, '_'));
230} 230}
231 231
232inline std::string managed_name(std::string const& name, char separator='_')
233{
234 auto tokens = utils::split(name, separator);
235 return utils::to_pascal_case(tokens);
236}
237
232inline std::string managed_method_name(attributes::function_def const& f) 238inline std::string managed_method_name(attributes::function_def const& f)
233{ 239{
234 std::vector<std::string> names = utils::split(f.name, '_'); 240 std::vector<std::string> names = utils::split(f.name, '_');
@@ -244,18 +250,12 @@ inline std::string managed_method_name(attributes::function_def const& f)
244 // Avoid clashing with System.Object.GetType 250 // Avoid clashing with System.Object.GetType
245 if (candidate == "GetType" || candidate == "SetType") 251 if (candidate == "GetType" || candidate == "SetType")
246 { 252 {
247 candidate.insert(3, f.klass.eolian_name); 253 candidate.insert(3, managed_name(f.klass.eolian_name));
248 } 254 }
249 255
250 return candidate; 256 return candidate;
251} 257}
252 258
253inline std::string managed_name(std::string const& name, char separator='_')
254{
255 auto tokens = utils::split(name, separator);
256 return utils::to_pascal_case(tokens);
257}
258
259inline std::string full_managed_name(std::string const& name) 259inline std::string full_managed_name(std::string const& name)
260{ 260{
261 std::stringstream ss; 261 std::stringstream ss;
diff --git a/src/bin/exactness/player.c b/src/bin/exactness/player.c
index 411b1a6..13de9bf 100644
--- a/src/bin/exactness/player.c
+++ b/src/bin/exactness/player.c
@@ -32,6 +32,7 @@
32#include "exactness_private.h" 32#include "exactness_private.h"
33 33
34#define PATH_ 1024 34#define PATH_ 1024
35#define CMD_LINE_MAX 256
35#define IMAGE_FILENAME_EXT ".png" 36#define IMAGE_FILENAME_EXT ".png"
36#define PAUSE_KEY_STR "F2" 37#define PAUSE_KEY_STR "F2"
37 38
@@ -1282,7 +1283,7 @@ int main(int argc, char **argv)
1282 /* Replace the current command line to hide the Exactness part */ 1283 /* Replace the current command line to hide the Exactness part */
1283 int len = argv[argc - 1] + strlen(argv[argc - 1]) - argv[opt_args]; 1284 int len = argv[argc - 1] + strlen(argv[argc - 1]) - argv[opt_args];
1284 memcpy(argv[0], argv[opt_args], len); 1285 memcpy(argv[0], argv[opt_args], len);
1285 memset(argv[0] + len, 0, PATH_MAX - len); 1286 memset(argv[0] + len, 0, CMD_LINE_MAX - len);
1286 1287
1287 int i; 1288 int i;
1288 for (i = opt_args; i < argc; i++) 1289 for (i = opt_args; i < argc; i++)
diff --git a/src/lib/eina/eina_promise.c b/src/lib/eina/eina_promise.c
index ece5ad0..98ef61e 100644
--- a/src/lib/eina/eina_promise.c
+++ b/src/lib/eina/eina_promise.c
@@ -425,6 +425,7 @@ _eina_future_dispatch(Eina_Future_Scheduler *scheduler, Eina_Future *f, Eina_Val
425static void 425static void
426_scheduled_entry_cb(Eina_Future *f, Eina_Value value) 426_scheduled_entry_cb(Eina_Future *f, Eina_Value value)
427{ 427{
428 EINA_SAFETY_ON_NULL_RETURN(f->scheduled_entry);
428 // This function is called by the scheduler, so it has to be defined 429 // This function is called by the scheduler, so it has to be defined
429 Eina_Future_Scheduler *scheduler = f->scheduled_entry->scheduler; 430 Eina_Future_Scheduler *scheduler = f->scheduled_entry->scheduler;
430 431
diff --git a/src/lib/eio/efl_io_manager.eo b/src/lib/eio/efl_io_manager.eo
index 9149595..be58b04 100644
--- a/src/lib/eio/efl_io_manager.eo
+++ b/src/lib/eio/efl_io_manager.eo
@@ -42,7 +42,7 @@ class @beta Efl.Io.Manager extends Efl.Loop_Consumer
42 params { 42 params {
43 @in path: string;[[Path we want to list entries for]] 43 @in path: string;[[Path we want to list entries for]]
44 @in recursive: bool; [[If $true, list entries recursively, $false otherwise]] 44 @in recursive: bool; [[If $true, list entries recursively, $false otherwise]]
45 info: EflIoDirectInfo; [[Callback called for each packet of @Eina.File_Direct_Info]] 45 info: EflIoDirectInfo; [[Callback called for each packet of @Eina.File_Direct_Info]]
46 } 46 }
47 return: future<uint64> @move; [[Amount of files found during the listing of the directory]] 47 return: future<uint64> @move; [[Amount of files found during the listing of the directory]]
48 } 48 }
@@ -52,7 +52,7 @@ class @beta Efl.Io.Manager extends Efl.Loop_Consumer
52 params { 52 params {
53 @in path: string;[[Path we want to list entries for]] 53 @in path: string;[[Path we want to list entries for]]
54 @in recursive: bool; [[If $true, list entries recursively, $false otherwise]] 54 @in recursive: bool; [[If $true, list entries recursively, $false otherwise]]
55 info: EflIoDirectInfo; [[Callback called for each packet of @Eina.File_Direct_Info]] 55 info: EflIoDirectInfo; [[Callback called for each packet of @Eina.File_Direct_Info]]
56 } 56 }
57 return: future<uint64> @move; [[Amount of files found during the listing of the directory]] 57 return: future<uint64> @move; [[Amount of files found during the listing of the directory]]
58 } 58 }
diff --git a/src/lib/elementary/efl_ui_panes.c b/src/lib/elementary/efl_ui_panes.c
index 3047fb3..1b2c765 100644
--- a/src/lib/elementary/efl_ui_panes.c
+++ b/src/lib/elementary/efl_ui_panes.c
@@ -181,7 +181,7 @@ _on_pressed(void *data,
181 const char *emission EINA_UNUSED, 181 const char *emission EINA_UNUSED,
182 const char *source EINA_UNUSED) 182 const char *source EINA_UNUSED)
183{ 183{
184 efl_event_callback_legacy_call(data, ELM_PANES_EVENT_PRESS, NULL); 184 evas_object_smart_callback_call(data, "press", NULL);
185 efl_input_clickable_press(data, 1); 185 efl_input_clickable_press(data, 1);
186} 186}
187 187
@@ -192,7 +192,7 @@ _on_unpressed(void *data,
192 const char *source EINA_UNUSED) 192 const char *source EINA_UNUSED)
193{ 193{
194 EFL_UI_PANES_DATA_GET(data, sd); 194 EFL_UI_PANES_DATA_GET(data, sd);
195 efl_event_callback_legacy_call(data, ELM_PANES_EVENT_UNPRESS, NULL); 195 evas_object_smart_callback_call(data, "unpress", NULL);
196 efl_input_clickable_unpress(data, 1); 196 efl_input_clickable_unpress(data, 1);
197 if (sd->double_clicked) 197 if (sd->double_clicked)
198 { 198 {
diff --git a/src/lib/elementary/efl_ui_panes.eo b/src/lib/elementary/efl_ui_panes.eo
index 00d1353..6c6402c 100644
--- a/src/lib/elementary/efl_ui_panes.eo
+++ b/src/lib/elementary/efl_ui_panes.eo
@@ -53,8 +53,4 @@ class @beta Efl.Ui.Panes extends Efl.Ui.Layout_Base implements Efl.Ui.Layout_Ori
53 Default is $vertical.]] } 53 Default is $vertical.]] }
54 Efl.Part.part_get; 54 Efl.Part.part_get;
55 } 55 }
56 events {
57 press: void; [[Called when panes got pressed]]
58 unpress: void; [[Called when panes are no longer pressed]]
59 }
60} 56}
diff --git a/src/lib/elementary/efl_ui_position_manager_list.c b/src/lib/elementary/efl_ui_position_manager_list.c
index 6424b4b..dd90b12 100644
--- a/src/lib/elementary/efl_ui_position_manager_list.c
+++ b/src/lib/elementary/efl_ui_position_manager_list.c
@@ -69,6 +69,7 @@ cache_require(Eo *obj EINA_UNUSED, Efl_Ui_Position_Manager_List_Data *pd)
69 } 69 }
70 70
71 pd->size_cache = calloc(pd->size + 1, sizeof(int)); 71 pd->size_cache = calloc(pd->size + 1, sizeof(int));
72 if (!pd->size_cache) return;
72 pd->size_cache[0] = 0; 73 pd->size_cache[0] = 0;
73 pd->maximum_min_size = 0; 74 pd->maximum_min_size = 0;
74 75
diff --git a/src/lib/elementary/elc_fileselector.c b/src/lib/elementary/elc_fileselector.c
index 39f1a7c..eb107b1 100644
--- a/src/lib/elementary/elc_fileselector.c
+++ b/src/lib/elementary/elc_fileselector.c
@@ -2406,6 +2406,11 @@ _properties_ready(void *data, const Efl_Event *ev)
2406 Eina_Bool is_dir = EINA_FALSE; 2406 Eina_Bool is_dir = EINA_FALSE;
2407 2407
2408 value = efl_model_property_get(ev->object, "is_dir"); 2408 value = efl_model_property_get(ev->object, "is_dir");
2409 if (!eina_value_type_get(value))
2410 {
2411 ERR("Empty type for 'is_dir'");
2412 return;
2413 }
2409 if (eina_value_type_get(value) != EINA_VALUE_TYPE_BOOL) 2414 if (eina_value_type_get(value) != EINA_VALUE_TYPE_BOOL)
2410 { 2415 {
2411 ERR("Unexpected type for 'is_dir': '%s' with value '%s'.", eina_value_type_get(value)->name, eina_value_to_string(value)); 2416 ERR("Unexpected type for 'is_dir': '%s' with value '%s'.", eina_value_type_get(value)->name, eina_value_to_string(value));
@@ -2471,6 +2476,11 @@ _elm_fileselector_selected_set_internal(Evas_Object *obj, const char *path)
2471 2476
2472 efl_event_callback_add(pd->target, EFL_MODEL_EVENT_PROPERTIES_CHANGED, _properties_ready, obj); 2477 efl_event_callback_add(pd->target, EFL_MODEL_EVENT_PROPERTIES_CHANGED, _properties_ready, obj);
2473 value = efl_model_property_get(pd->target, "is_dir"); 2478 value = efl_model_property_get(pd->target, "is_dir");
2479 if (!eina_value_type_get(value))
2480 {
2481 ERR("Empty type for 'is_dir'");
2482 goto clean_up;
2483 }
2474 if (eina_value_type_get(value) == EINA_VALUE_TYPE_ERROR) 2484 if (eina_value_type_get(value) == EINA_VALUE_TYPE_ERROR)
2475 { 2485 {
2476 Eina_Error err = 0; 2486 Eina_Error err = 0;
@@ -2507,6 +2517,11 @@ _elm_fileselector_elm_interface_fileselector_selected_model_set(Eo *obj, Elm_Fil
2507 2517
2508 efl_event_callback_add(pd->target, EFL_MODEL_EVENT_PROPERTIES_CHANGED, _properties_ready, obj); 2518 efl_event_callback_add(pd->target, EFL_MODEL_EVENT_PROPERTIES_CHANGED, _properties_ready, obj);
2509 value = efl_model_property_get(pd->target, "is_dir"); 2519 value = efl_model_property_get(pd->target, "is_dir");
2520 if (!eina_value_type_get(value))
2521 {
2522 ERR("Empty type for 'is_dir'");
2523 goto clean_up;
2524 }
2510 if (eina_value_type_get(value) == EINA_VALUE_TYPE_ERROR) 2525 if (eina_value_type_get(value) == EINA_VALUE_TYPE_ERROR)
2511 { 2526 {
2512 Eina_Error err = 0; 2527 Eina_Error err = 0;
diff --git a/src/lib/elementary/elm_interface_scrollable.c b/src/lib/elementary/elm_interface_scrollable.c
index 7130efb..f03ae31 100644
--- a/src/lib/elementary/elm_interface_scrollable.c
+++ b/src/lib/elementary/elm_interface_scrollable.c
@@ -4032,6 +4032,9 @@ _elm_interface_scrollable_reset_signals(Eo *obj EINA_UNUSED, Elm_Scrollable_Smar
4032{ 4032{
4033 sid->go_up = sid->go_down = sid->go_right = sid->go_left = EINA_FALSE; 4033 sid->go_up = sid->go_down = sid->go_right = sid->go_left = EINA_FALSE;
4034 4034
4035 if (!sid->edje_obj)
4036 return;
4037
4035 edje_object_signal_emit(sid->edje_obj, "elm,action,hide,up", "elm"); 4038 edje_object_signal_emit(sid->edje_obj, "elm,action,hide,up", "elm");
4036 edje_object_signal_emit(sid->edje_obj, "elm,action,hide,down", "elm"); 4039 edje_object_signal_emit(sid->edje_obj, "elm,action,hide,down", "elm");
4037 edje_object_signal_emit(sid->edje_obj, "elm,action,hide,right", "elm"); 4040 edje_object_signal_emit(sid->edje_obj, "elm,action,hide,right", "elm");
diff --git a/src/lib/eo/eo_base_class.c b/src/lib/eo/eo_base_class.c
index 9fd4d2b..27c21a3 100644
--- a/src/lib/eo/eo_base_class.c
+++ b/src/lib/eo/eo_base_class.c
@@ -1939,6 +1939,7 @@ _efl_object_event_future_scheduler_get(const Eo *obj, Efl_Object_Data *pd, Efl_C
1939 if (!array) return NULL; 1939 if (!array) return NULL;
1940 1940
1941 ext = _efl_object_extension_need(pd); 1941 ext = _efl_object_extension_need(pd);
1942 EINA_SAFETY_ON_NULL_RETURN_VAL(ext, NULL);
1942 1943
1943 // First lookup for an existing scheduler that match the provided array 1944 // First lookup for an existing scheduler that match the provided array
1944 if (!ext->schedulers) ext->schedulers = eina_hash_pointer_new(_futures_cancel_cb); 1945 if (!ext->schedulers) ext->schedulers = eina_hash_pointer_new(_futures_cancel_cb);
diff --git a/src/lib/eo/eo_ptr_indirection.x b/src/lib/eo/eo_ptr_indirection.x
index 2b3fa5a..f0f34e0 100644
--- a/src/lib/eo/eo_ptr_indirection.x
+++ b/src/lib/eo/eo_ptr_indirection.x
@@ -247,7 +247,12 @@ _eo_id_mem_protect(void *ptr, Eina_Bool may_not_write)
247# define UNPROTECT(_ptr_) 247# define UNPROTECT(_ptr_)
248#endif 248#endif
249 249
250#define EO_ALIGN_SIZE(size) eina_mempool_alignof(size) 250#if __WORDSIZE == 32
251# define EO_ALIGN 16
252#else // __WORDSIZE == 64
253# define EO_ALIGN 8
254#endif
255#define EO_ALIGN_SIZE(size) (((size + EO_ALIGN - 1) / EO_ALIGN) * EO_ALIGN)
251 256
252/* Entry */ 257/* Entry */
253typedef struct 258typedef struct
diff --git a/src/lib/evas/canvas/evas_object_image.c b/src/lib/evas/canvas/evas_object_image.c
index e2bfebf..0391d81 100644
--- a/src/lib/evas/canvas/evas_object_image.c
+++ b/src/lib/evas/canvas/evas_object_image.c
@@ -1734,7 +1734,7 @@ evas_object_image_free(Evas_Object *eo_obj, Evas_Object_Protected_Data *obj)
1734 } 1734 }
1735 if (o->cur->scene) 1735 if (o->cur->scene)
1736 { 1736 {
1737 if (o->cur->scene) _evas_image_3d_unset(eo_obj, obj, o); 1737 _evas_image_3d_unset(eo_obj, obj, o);
1738 EINA_COW_IMAGE_STATE_WRITE_BEGIN(o, state_write) 1738 EINA_COW_IMAGE_STATE_WRITE_BEGIN(o, state_write)
1739 state_write->scene = NULL; 1739 state_write->scene = NULL;
1740 EINA_COW_IMAGE_STATE_WRITE_END(o, state_write); 1740 EINA_COW_IMAGE_STATE_WRITE_END(o, state_write);
diff --git a/src/tests/elementary/efl_ui_test_layout.c b/src/tests/elementary/efl_ui_test_layout.c
index 86f4b1e..4d6e7c8 100644
--- a/src/tests/elementary/efl_ui_test_layout.c
+++ b/src/tests/elementary/efl_ui_test_layout.c
@@ -195,14 +195,19 @@ EFL_END_TEST
195EFL_START_TEST(efl_ui_layout_test_api_ordering) 195EFL_START_TEST(efl_ui_layout_test_api_ordering)
196{ 196{
197 Evas_Object *win, *box; 197 Evas_Object *win, *box;
198 int count = 0;
198 const char text_text[] = "test text"; 199 const char text_text[] = "test text";
199 200
200 win = win_add(NULL, "layout", EFL_UI_WIN_TYPE_BASIC); 201 win = win_add(NULL, "layout", EFL_UI_WIN_TYPE_BASIC);
201 box = efl_add(EFL_UI_BOX_CLASS, win); 202 box = efl_add(EFL_UI_BOX_CLASS, win);
202 Eo *layout = efl_add(EFL_UI_BUTTON_CLASS, win, 203 Eo *layout = efl_add(EFL_UI_BUTTON_CLASS, win,
204 efl_layout_signal_callback_add(efl_added, "efl,content,set", "efl", &count, (void*)event_callback_single_call_int_data, NULL),
205 efl_ui_widget_style_set(efl_added, "anchor"),
203 efl_content_set(efl_added, box), 206 efl_content_set(efl_added, box),
204 efl_text_set(efl_added, text_text) 207 efl_text_set(efl_added, text_text)
205 ); 208 );
209 ecore_main_loop_iterate();
210 ck_assert_int_eq(count, 1);
206 ck_assert_ptr_eq(efl_content_get(layout), box); 211 ck_assert_ptr_eq(efl_content_get(layout), box);
207 ck_assert_str_eq(efl_text_get(layout), text_text); 212 ck_assert_str_eq(efl_text_get(layout), text_text);
208} 213}