Enlightenment CVS committal
Author : barbieri
Project : e17
Module : libs/edje
Dir : e17/libs/edje/src/lib
Modified Files:
edje_load.c edje_main.c edje_match.c edje_private.h
edje_program.c
Log Message:
Cleanup of last patches and revert my patching mistakes.
Last 2 patches were swapped, I applied them in the wrong order and
missed the rejections, my bad.
I fixed it and also did some cleanup, looks better now.
===================================================================
RCS file: /cvs/e/e17/libs/edje/src/lib/edje_load.c,v
retrieving revision 1.115
retrieving revision 1.116
diff -u -3 -r1.115 -r1.116
--- edje_load.c 26 Feb 2008 19:06:33 -0000 1.115
+++ edje_load.c 26 Feb 2008 20:12:00 -0000 1.116
@@ -210,6 +210,25 @@
return str;
}
+static void
+_edje_programs_patterns_clean(Edje *ed)
+{
+ _edje_signals_sources_patterns_clean(&ed->patterns.programs);
+}
+
+static void
+_edje_programs_patterns_init(Edje *ed)
+{
+ Edje_Signals_Sources_Patterns *ssp = &ed->patterns.programs;
+ Evas_List *programs = ed->collection->programs;
+
+ if (ssp->signals_patterns)
+ return;
+
+ ssp->signals_patterns = edje_match_programs_signal_init(programs);
+ ssp->sources_patterns = edje_match_programs_source_init(programs);
+}
+
static int
_edje_object_file_set_internal(Evas_Object *obj, const char *file, const char
*part, Evas_List *group_path)
{
@@ -408,8 +427,7 @@
}
}
- 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_init(ed);
n = evas_list_count(ed->collection->programs);
if (n > 0)
@@ -603,14 +621,7 @@
_edje_message_del(ed);
_edje_block_violate(ed);
_edje_var_shutdown(ed);
-
- 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 = NULL;
- ed->patterns.programs.sources_patterns = NULL;
+ _edje_programs_patterns_clean(ed);
if (!((ed->file) && (ed->collection))) return;
if ((ed->file) && (ed->collection))
@@ -709,14 +720,6 @@
if (ed->table_programs) free(ed->table_programs);
ed->table_programs = NULL;
ed->table_programs_size = 0;
-
- 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 = NULL;
- ed->patterns.programs.sources_patterns = NULL;
}
/**
* Used to free the cached data values that are stored in the data_cache
===================================================================
RCS file: /cvs/e/e17/libs/edje/src/lib/edje_main.c,v
retrieving revision 1.54
retrieving revision 1.55
diff -u -3 -r1.54 -r1.55
--- edje_main.c 26 Feb 2008 19:06:33 -0000 1.54
+++ edje_main.c 26 Feb 2008 20:12:00 -0000 1.55
@@ -90,7 +90,7 @@
return;
}
_edje_message_del(ed);
- _edje_clean_callbacks_patterns(ed);
+ _edje_callbacks_patterns_clean(ed);
_edje_file_del(ed);
if (ed->path) evas_stringshare_del(ed->path);
if (ed->part) evas_stringshare_del(ed->part);
@@ -145,11 +145,6 @@
if (tc->name) evas_stringshare_del(tc->name);
if (tc->font) evas_stringshare_del(tc->font);
free(tc);
- }
- if (ed->patterns.callbacks.signals_patterns)
- {
- edje_match_patterns_free(ed->patterns.callbacks.signals_patterns);
- edje_match_patterns_free(ed->patterns.callbacks.sources_patterns);
}
free(ed);
}
===================================================================
RCS file: /cvs/e/e17/libs/edje/src/lib/edje_match.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -3 -r1.2 -r1.3
--- edje_match.c 21 Feb 2008 18:48:36 -0000 1.2
+++ edje_match.c 26 Feb 2008 20:12:00 -0000 1.3
@@ -546,3 +546,14 @@
free(ppat);
}
+void
+_edje_signals_sources_patterns_clean(Edje_Signals_Sources_Patterns *ssp)
+{
+ if (!ssp->signals_patterns)
+ return;
+
+ edje_match_patterns_free(ssp->signals_patterns);
+ edje_match_patterns_free(ssp->sources_patterns);
+ ssp->signals_patterns = NULL;
+ ssp->sources_patterns = NULL;
+}
===================================================================
RCS file: /cvs/e/e17/libs/edje/src/lib/edje_private.h,v
retrieving revision 1.139
retrieving revision 1.140
diff -u -3 -r1.139 -r1.140
--- edje_private.h 26 Feb 2008 18:41:44 -0000 1.139
+++ edje_private.h 26 Feb 2008 20:12:00 -0000 1.140
@@ -578,6 +578,14 @@
typedef struct _Edje_Var_Timer Edje_Var_Timer;
typedef struct _Edje_Var_Pool Edje_Var_Pool;
+struct _Edje_Signals_Sources_Patterns
+{
+ Edje_Patterns *signals_patterns;
+ Edje_Patterns *sources_patterns;
+};
+
+typedef struct _Edje_Signals_Sources_Patterns Edje_Signals_Sources_Patterns;
+
struct _Edje
{
const char *path;
@@ -608,14 +616,8 @@
int table_parts_size;
struct {
- struct {
- Edje_Patterns *signals_patterns;
- Edje_Patterns *sources_patterns;
- } callbacks;
- struct {
- Edje_Patterns *signals_patterns;
- Edje_Patterns *sources_patterns;
- } programs;
+ Edje_Signals_Sources_Patterns callbacks;
+ Edje_Signals_Sources_Patterns programs;
} patterns;
int references;
@@ -1028,7 +1030,8 @@
void _edje_program_run(Edje *ed, Edje_Program *pr, int force, const char
*ssig, const char *ssrc);
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_clean_callbacks_patterns(Edje *ed);
+void _edje_signals_sources_patterns_clean(Edje_Signals_Sources_Patterns *ssp);
+void _edje_callbacks_patterns_clean(Edje *ed);
void _edje_text_init(void);
void _edje_text_part_on_add(Edje *ed, Edje_Real_Part *ep);
===================================================================
RCS file: /cvs/e/e17/libs/edje/src/lib/edje_program.c,v
retrieving revision 1.58
retrieving revision 1.59
diff -u -3 -r1.58 -r1.59
--- edje_program.c 26 Feb 2008 18:41:44 -0000 1.58
+++ edje_program.c 26 Feb 2008 20:12:00 -0000 1.59
@@ -106,7 +106,7 @@
ed->just_added_callbacks = 1;
}
else
- _edje_clean_callbacks_patterns(ed);
+ _edje_callbacks_patterns_clean(ed);
}
/** Remove a callback from an object
@@ -152,7 +152,7 @@
}
else
{
- _edje_clean_callbacks_patterns(ed);
+ _edje_callbacks_patterns_clean(ed);
ed->callbacks = evas_list_remove_list(ed->callbacks, l);
if (escb->signal) evas_stringshare_del(escb->signal);
@@ -863,6 +863,25 @@
return 0;
}
+
+void
+_edje_callbacks_patterns_clean(Edje *ed)
+{
+ _edje_signals_sources_patterns_clean(&ed->patterns.callbacks);
+}
+
+static void
+_edje_callbacks_patterns_init(Edje *ed)
+{
+ Edje_Signals_Sources_Patterns *ssp = &ed->patterns.callbacks;
+
+ if (ssp->signals_patterns)
+ return;
+
+ ssp->signals_patterns = edje_match_callback_signal_init(ed->callbacks);
+ ssp->sources_patterns = edje_match_callback_source_init(ed->callbacks);
+}
+
/* FIXME: what if we delete the evas object??? */
void
_edje_emit_handle(Edje *ed, const char *sig, const char *src)
@@ -978,7 +997,7 @@
_edje_block(ed);
if (ed->just_added_callbacks)
- _edje_clean_callbacks_patterns(ed);
+ _edje_callbacks_patterns_clean(ed);
ed->walking_callbacks = 1;
@@ -986,12 +1005,7 @@
{
int r;
- if (!ed->patterns.callbacks.signals_patterns)
- {
- ed->patterns.callbacks.signals_patterns =
edje_match_callback_signal_init(ed->callbacks);
- ed->patterns.callbacks.sources_patterns =
edje_match_callback_source_init(ed->callbacks);
- }
-
+ _edje_callbacks_patterns_init(ed);
r = edje_match_callback_exec(ed->patterns.callbacks.signals_patterns,
ed->patterns.callbacks.sources_patterns,
sig,
@@ -1027,23 +1041,10 @@
l = next_l;
}
- _edje_clean_callbacks_patterns(ed);
+ _edje_callbacks_patterns_clean(ed);
}
break_prog:
_edje_unblock(ed);
_edje_thaw(ed);
_edje_unref(ed);
}
-
-void
-_edje_clean_callbacks_patterns(Edje *ed)
-{
- if (ed->patterns.callbacks.signals_patterns)
- {
- edje_match_patterns_free(ed->patterns.callbacks.signals_patterns);
- edje_match_patterns_free(ed->patterns.callbacks.sources_patterns);
- ed->patterns.callbacks.signals_patterns = NULL;
- ed->patterns.callbacks.sources_patterns = NULL;
- }
-}
-
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs