diff options
author | Mike Blumenkrantz <zmike@samsung.com> | 2014-04-21 10:29:53 -0400 |
---|---|---|
committer | Mike Blumenkrantz <zmike@samsung.com> | 2014-04-25 10:52:15 -0400 |
commit | 939f2eea7f8318864c85010c704a6045d2e77b51 (patch) | |
tree | 9dcc2c0e95e19cb808d305d4efc12d12a3a301a5 /src/lib | |
parent | c5b1598e6e21fb11e7a0672e14077f61181b510b (diff) |
edje now has the group.script_recursion flag for permitting unsafe embryo recursion
this is enabled for all scripts within a group, and it should only be used if you:
1) know what you are doing
2) know why this is unsafe (T905)
@feature
Diffstat (limited to 'src/lib')
-rw-r--r-- | src/lib/edje/edje_data.c | 1 | ||||
-rw-r--r-- | src/lib/edje/edje_embryo.c | 2 | ||||
-rw-r--r-- | src/lib/edje/edje_private.h | 2 |
3 files changed, 4 insertions, 1 deletions
diff --git a/src/lib/edje/edje_data.c b/src/lib/edje/edje_data.c index 2a9cf3fdaa..a6d7c8124a 100644 --- a/src/lib/edje/edje_data.c +++ b/src/lib/edje/edje_data.c | |||
@@ -1077,6 +1077,7 @@ _edje_edd_init(void) | |||
1077 | EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_collection, Edje_Part_Collection, "physics.world.depth", physics.world.depth, EET_T_INT); | 1077 | EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_collection, Edje_Part_Collection, "physics.world.depth", physics.world.depth, EET_T_INT); |
1078 | #endif | 1078 | #endif |
1079 | EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_collection, Edje_Part_Collection, "physics_enabled", physics_enabled, EET_T_UCHAR); | 1079 | EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_collection, Edje_Part_Collection, "physics_enabled", physics_enabled, EET_T_UCHAR); |
1080 | EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_collection, Edje_Part_Collection, "script_recursion", script_recursion, EET_T_UCHAR); | ||
1080 | } | 1081 | } |
1081 | 1082 | ||
1082 | EAPI void | 1083 | EAPI void |
diff --git a/src/lib/edje/edje_embryo.c b/src/lib/edje/edje_embryo.c index b4ba41f171..2f03c6ba89 100644 --- a/src/lib/edje/edje_embryo.c +++ b/src/lib/edje/edje_embryo.c | |||
@@ -3871,7 +3871,7 @@ _edje_embryo_test_run(Edje *ed, const char *fname, const char *sig, const char * | |||
3871 | /* will likely end up being much longer than 0.016 seconds - more */ | 3871 | /* will likely end up being much longer than 0.016 seconds - more */ |
3872 | /* like 0.03 - 0.05 seconds or even more */ | 3872 | /* like 0.03 - 0.05 seconds or even more */ |
3873 | embryo_program_max_cycle_run_set(ed->collection->script, 5000000); | 3873 | embryo_program_max_cycle_run_set(ed->collection->script, 5000000); |
3874 | if (embryo_program_recursion_get(ed->collection->script)) | 3874 | if (embryo_program_recursion_get(ed->collection->script) && (!ed->collection->script_recursion)) |
3875 | ERR("You are running Embryo->EDC->Embryo with script program '%s';\nBy the power of Grayskull, your previous Embryo stack is now broken!", fname); | 3875 | ERR("You are running Embryo->EDC->Embryo with script program '%s';\nBy the power of Grayskull, your previous Embryo stack is now broken!", fname); |
3876 | ret = embryo_program_run(ed->collection->script, fn); | 3876 | ret = embryo_program_run(ed->collection->script, fn); |
3877 | if (ret == EMBRYO_PROGRAM_FAIL) | 3877 | if (ret == EMBRYO_PROGRAM_FAIL) |
diff --git a/src/lib/edje/edje_private.h b/src/lib/edje/edje_private.h index 96adb6ea9e..1c756b2a9f 100644 --- a/src/lib/edje/edje_private.h +++ b/src/lib/edje/edje_private.h | |||
@@ -967,6 +967,8 @@ struct _Edje_Part_Collection | |||
967 | 967 | ||
968 | unsigned char physics_enabled; /* will be 1 if a body is declared */ | 968 | unsigned char physics_enabled; /* will be 1 if a body is declared */ |
969 | 969 | ||
970 | unsigned char script_recursion; /* permits unsafe Embryo->EDC->Embryo scripting */ | ||
971 | |||
970 | unsigned char checked : 1; | 972 | unsigned char checked : 1; |
971 | }; | 973 | }; |
972 | 974 | ||