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

Reply via email to