diff --git a/legacy/edje/src/lib/edje_edit.c b/legacy/edje/src/lib/edje_edit.c index 650b496127..4b06084ff4 100644 --- a/legacy/edje/src/lib/edje_edit.c +++ b/legacy/edje/src/lib/edje_edit.c @@ -4805,13 +4805,8 @@ edje_edit_program_add(Evas_Object *obj, const char *name) ed->table_programs[epr->id % ed->table_programs_size] = epr; //Update patterns - if (ed->patterns.programs.signals_patterns) - { - edje_match_patterns_free(ed->patterns.programs.signals_patterns); - edje_match_patterns_free(ed->patterns.programs.sources_patterns); - } - ed->patterns.programs.signals_patterns = edje_match_programs_signal_init(ed->collection->programs); - ed->patterns.programs.sources_patterns = edje_match_programs_source_init(ed->collection->programs); + _edje_programs_patterns_clean(ed); + _edje_programs_patterns_init(ed); return 1; } diff --git a/legacy/edje/src/lib/edje_load.c b/legacy/edje/src/lib/edje_load.c index 05958bb266..49a0fea787 100644 --- a/legacy/edje/src/lib/edje_load.c +++ b/legacy/edje/src/lib/edje_load.c @@ -245,7 +245,7 @@ edje_file_data_get(const char *file, const char *key) return str; } -static void +void _edje_programs_patterns_clean(Edje *ed) { _edje_signals_sources_patterns_clean(&ed->patterns.programs); @@ -258,7 +258,7 @@ _edje_programs_patterns_clean(Edje *ed) ed->patterns.programs.globing = eina_list_free(ed->patterns.programs.globing); } -static void +void _edje_programs_patterns_init(Edje *ed) { Edje_Signals_Sources_Patterns *ssp = &ed->patterns.programs; diff --git a/legacy/edje/src/lib/edje_private.h b/legacy/edje/src/lib/edje_private.h index 9ea65cd05b..79428392a8 100644 --- a/legacy/edje/src/lib/edje_private.h +++ b/legacy/edje/src/lib/edje_private.h @@ -1214,6 +1214,8 @@ void _edje_unref(Edje *ed); int _edje_program_run_iterate(Edje_Running_Program *runp, double tim); void _edje_program_end(Edje *ed, Edje_Running_Program *runp); void _edje_program_run(Edje *ed, Edje_Program *pr, int force, const char *ssig, const char *ssrc); +void _edje_programs_patterns_clean(Edje *ed); +void _edje_programs_patterns_init(Edje *ed); void _edje_emit(Edje *ed, const char *sig, const char *src); void _edje_emit_handle(Edje *ed, const char *sig, const char *src); void _edje_signals_sources_patterns_clean(Edje_Signals_Sources_Patterns *ssp);