Enlightenment CVS committal

Author  : dj2
Project : e17
Module  : libs/engrave

Dir     : e17/libs/engrave/src/lib


Modified Files:
        engrave_data.c engrave_file.c engrave_file.h engrave_font.c 
        engrave_group.c engrave_group.h engrave_image.c engrave_part.c 
        engrave_part.h engrave_part_state.c engrave_part_state.h 
        engrave_program.c engrave_program.h 


Log Message:
- add _free methods to each of the objects

===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/engrave/src/lib/engrave_data.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -3 -r1.5 -r1.6
--- engrave_data.c      13 Nov 2004 20:50:20 -0000      1.5
+++ engrave_data.c      13 Nov 2004 23:44:36 -0000      1.6
@@ -32,14 +32,9 @@
 {
   if (!ed) return;
 
-  if (ed->key) free(ed->key);
-  ed->key = NULL;
-
-  if (ed->value) free(ed->value);
-  ed->value = NULL;
-
-  free(ed);
-  ed = NULL;
+  IF_FREE(ed->key);
+  IF_FREE(ed->value);
+  FREE(ed);
 }
 
 /**
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/engrave/src/lib/engrave_file.c,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -3 -r1.9 -r1.10
--- engrave_file.c      13 Nov 2004 21:06:56 -0000      1.9
+++ engrave_file.c      13 Nov 2004 23:44:36 -0000      1.10
@@ -16,6 +16,50 @@
 }
 
 /**
+ * engrave_file_free - free the file object
+ * @param ef: The Engrave_File to free
+ *
+ * @return Returns no value.
+ */
+void
+engrave_file_free(Engrave_File *ef)
+{
+  Evas_List *l;
+
+  if (!ef) return;
+
+  for (l = ef->images; l; l = l->next) {
+    Engrave_Image *ei = l->data;
+    ef->images = evas_list_remove(ef->images, ei);
+    engrave_image_free(ei);
+  }
+  ef->images = evas_list_free(ef->images);
+
+  for (l = ef->fonts; l; l = l->next) {
+    Engrave_Font *font = l->data;
+    ef->fonts = evas_list_remove(ef->fonts, font);
+    engrave_font_free(font);
+  }
+  ef->fonts = evas_list_free(ef->fonts);
+
+  for (l = ef->data; l; l = l->next) {
+    Engrave_Data *ed = l->data;
+    ef->data = evas_list_remove(ef->data, ed);
+    engrave_data_free(ed);
+  }
+  ef->data = evas_list_free(ef->data);
+
+  for (l = ef->groups; l; l = l->next) {
+    Engrave_Group *eg = l->data;
+    ef->groups = evas_list_remove(ef->groups, eg);
+    engrave_group_free(eg);
+  }
+  ef->groups = evas_list_free(ef->groups);
+
+  FREE(ef);
+}
+
+/**
  * engrave_file_font_add - add the font to the engrave file.
  * @param e: The Engrave_File to add the font too.
  * @param ef: The Engrave_Font to add to the file.
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/engrave/src/lib/engrave_file.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -3 -r1.6 -r1.7
--- engrave_file.h      13 Nov 2004 21:06:56 -0000      1.6
+++ engrave_file.h      13 Nov 2004 23:44:36 -0000      1.7
@@ -29,6 +29,8 @@
 };
 
 Engrave_File *engrave_file_new(void);
+void engrave_file_free(Engrave_File *ef);
+
 void engrave_file_font_add(Engrave_File *e, Engrave_Font *ef);
 void engrave_file_image_add(Engrave_File *ef, Engrave_Image *ei);
 void engrave_file_data_add(Engrave_File *ef, Engrave_Data *ed);
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/engrave/src/lib/engrave_font.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -3 -r1.5 -r1.6
--- engrave_font.c      13 Nov 2004 20:50:20 -0000      1.5
+++ engrave_font.c      13 Nov 2004 23:44:36 -0000      1.6
@@ -32,14 +32,9 @@
 {
   if (!ef) return;
 
-  if (ef->name) free(ef->name);
-  ef->name = NULL;
-
-  if (ef->path) free(ef->path);
-  ef->path = NULL;
-
-  free(ef);
-  ef = NULL;
+  IF_FREE(ef->name);
+  IF_FREE(ef->path);
+  FREE(ef);
 }
 
 /**
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/engrave/src/lib/engrave_group.c,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -3 -r1.8 -r1.9
--- engrave_group.c     13 Nov 2004 21:06:56 -0000      1.8
+++ engrave_group.c     13 Nov 2004 23:44:36 -0000      1.9
@@ -21,6 +21,44 @@
 }
 
 /**
+ * engrave_group_free - free the group data
+ * @param eg: The Engrave_Group to free
+ *
+ * @return Returns no value
+ */
+void
+engrave_group_free(Engrave_Group *eg) 
+{
+  Evas_List *l;
+  if (!eg) return;
+
+  IF_FREE(eg->name);
+
+  for (l = eg->parts; l; l = l->next) {
+    Engrave_Part *ep = l->data;
+    eg->parts = evas_list_remove(eg->parts, ep);
+    engrave_part_free(ep);
+  }
+  eg->parts = evas_list_free(eg->parts);
+
+  for (l = eg->programs; l; l = l->next) {
+    Engrave_Program *ep = l->data;
+    eg->programs = evas_list_remove(eg->programs, ep);
+    engrave_program_free(ep);
+  }
+  eg->programs = evas_list_free(eg->programs);
+
+  for (l = eg->data; l; l = l->next) {
+    Engrave_Data *ed = l->data;
+    eg->data = evas_list_remove(eg->data, ed);
+    engrave_data_free(ed);
+  }
+  eg->data = evas_list_free(eg->data);
+
+  FREE(eg);
+}
+
+/**
  * engrave_group_data_add - add the Engrave_Data to the group
  * @param eg: The Engrave_Group to add the data too.
  * @param ed: The Engrave_Data to add to the group.
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/engrave/src/lib/engrave_group.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -3 -r1.6 -r1.7
--- engrave_group.h     13 Nov 2004 21:06:56 -0000      1.6
+++ engrave_group.h     13 Nov 2004 23:44:36 -0000      1.7
@@ -40,6 +40,8 @@
 };
 
 Engrave_Group *engrave_group_new(void);
+void engrave_group_free(Engrave_Group *eg);
+
 void engrave_group_data_add(Engrave_Group *eg, Engrave_Data *ed);
 void engrave_group_part_add(Engrave_Group *eg, Engrave_Part *ep);
 void engrave_group_program_add(Engrave_Group *eg, Engrave_Program *ep);
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/engrave/src/lib/engrave_image.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -3 -r1.7 -r1.8
--- engrave_image.c     13 Nov 2004 21:06:56 -0000      1.7
+++ engrave_image.c     13 Nov 2004 23:44:36 -0000      1.8
@@ -25,6 +25,22 @@
 }
 
 /**
+ * engrave_image_free - free the Engrave_Image
+ * @param ei: The Engrave_Image to free
+ *
+ * @return Returns no value.
+ */
+void
+engrave_image_free(Engrave_Image *ei)
+{
+  if (!ei) return;
+
+  IF_FREE(ei->name);
+  IF_FREE(ei->path);
+  FREE(ei);
+}
+
+/**
  * engrave_image_dup - duplicate an Engrave_Image
  * @param from: The Engrave_Image to duplicate
  *
@@ -39,27 +55,6 @@
   return to;
 }
 
-/**
- * engrave_image_free - free the image data
- * @param ef: The Engrave_Image to free
- *
- * @return Returns no value.
- */
-void
-engrave_image_free(Engrave_Image *ef)
-{
-  if (!ef) return;
-
-  if (ef->name) free(ef->name);
-  ef->name = NULL;
-
-  if (ef->path) free(ef->path);
-  ef->path = NULL;
-
-  free(ef);
-  ef = NULL;
-}
-
 /** 
  * engrave_image_name_get - get the image name
  * @param ei: The Engrave_Image to get the name from
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/engrave/src/lib/engrave_part.c,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -3 -r1.9 -r1.10
--- engrave_part.c      13 Nov 2004 21:06:57 -0000      1.9
+++ engrave_part.c      13 Nov 2004 23:44:36 -0000      1.10
@@ -20,6 +20,31 @@
 }
 
 /**
+ * engrave_part_free - free the part
+ * @param ep: The Engrave_Part to free
+ * 
+ * @return Returns no value.
+ */
+void
+engrave_part_free(Engrave_Part *ep)
+{
+  Evas_List *l;
+  if (!ep) return;
+
+  IF_FREE(ep->name);
+  IF_FREE(ep->clip_to);
+  IF_FREE(ep->dragable.confine);
+
+  for (l = ep->states; l; l = l->next) {
+    Engrave_Part_State *eps = l->data;
+    ep->states = evas_list_remove(ep->states, eps);
+    engrave_part_state_free(eps);
+  }
+  ep->states = evas_list_free(ep->states);
+  FREE(ep);
+}
+
+/**
  * engrave_part_mouse_events_set - set the mouse events flag for the part.
  * @param ep: The Engrave_Part to set the mouse events flag on.
  * @param val: The value to set the mouse events flag too.
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/engrave/src/lib/engrave_part.h,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -3 -r1.7 -r1.8
--- engrave_part.h      13 Nov 2004 21:06:57 -0000      1.7
+++ engrave_part.h      13 Nov 2004 23:44:36 -0000      1.8
@@ -53,6 +53,8 @@
 };
 
 Engrave_Part * engrave_part_new(Engrave_Part_Type type);
+void engrave_part_free(Engrave_Part *ep);
+
 void engrave_part_name_set(Engrave_Part *ep, char *name);
 void engrave_part_mouse_events_set(Engrave_Part *ep, int val);
 void engrave_part_repeat_events_set(Engrave_Part *ep, int val);
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/engrave/src/lib/engrave_part_state.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -3 -r1.10 -r1.11
--- engrave_part_state.c        13 Nov 2004 23:18:11 -0000      1.10
+++ engrave_part_state.c        13 Nov 2004 23:44:36 -0000      1.11
@@ -60,6 +60,38 @@
 }
 
 /**
+ * engrave_part_state_free - free the state
+ * @param eps: The Engrave_Part_State to free
+ * 
+ * @return Returns no value.
+ */
+void
+engrave_part_state_free(Engrave_Part_State *eps)
+{
+  Evas_List *l;
+  if (!eps) return;
+
+  IF_FREE(eps->name);
+  IF_FREE(eps->rel1.to_x);
+  IF_FREE(eps->rel1.to_y);
+  IF_FREE(eps->rel2.to_x);
+  IF_FREE(eps->rel2.to_y);
+
+  engrave_image_free(eps->image.normal);
+  for (l = eps->image.tween; l; l = l->next) {
+    Engrave_Image *ei = l->data;
+    eps->image.tween = evas_list_remove(eps->image.tween, ei);
+    engrave_image_free(ei);
+  }
+  eps->image.tween = evas_list_free(eps->image.tween);
+
+  IF_FREE(eps->color_class);
+  IF_FREE(eps->text.text);
+  IF_FREE(eps->text.text_class);
+  IF_FREE(eps->text.font);
+}
+
+/**
  * engrave_part_state_name_set - Set the name of the state
  * @param eps: The Engrave_Part_State to set the value too.
  * @param name: The name to set to the state.
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/engrave/src/lib/engrave_part_state.h,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -3 -r1.7 -r1.8
--- engrave_part_state.h        13 Nov 2004 23:18:11 -0000      1.7
+++ engrave_part_state.h        13 Nov 2004 23:44:36 -0000      1.8
@@ -170,6 +170,8 @@
 };
 
 Engrave_Part_State * engrave_part_state_new(void);
+void engrave_part_state_free(Engrave_Part_State *eps);
+
 void engrave_part_state_name_set(Engrave_Part_State *eps, char *name, 
                                                           double value);
 char *engrave_part_state_name_get(Engrave_Part_State *eps, double *value);
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/engrave/src/lib/engrave_program.c,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -3 -r1.8 -r1.9
--- engrave_program.c   13 Nov 2004 21:06:57 -0000      1.8
+++ engrave_program.c   13 Nov 2004 23:44:36 -0000      1.9
@@ -16,6 +16,42 @@
 }
 
 /**
+ * engrave_program_free - free the program
+ * @param ep: The Engrave_Program to free
+ *
+ * @return Returns no value.
+ */
+void
+engrave_program_free(Engrave_Program *ep)
+{
+  Evas_List *l;
+  if (!ep) return;
+  
+  IF_FREE(ep->name);
+  IF_FREE(ep->signal);
+  IF_FREE(ep->source);
+
+  for (l = ep->targets; l; l = l->next) {
+    char *d = l->data;
+    ep->targets = evas_list_remove(ep->targets, d);
+    IF_FREE(d);
+  }
+  ep->targets = evas_list_free(ep->targets);
+
+  for (l = ep->afters; l; l = l->next) {
+    char *d = l->data;
+    ep->afters = evas_list_remove(ep->afters, d);
+    IF_FREE(d);
+  }
+  ep->afters = evas_list_free(ep->afters);
+
+  IF_FREE(ep->state);
+  IF_FREE(ep->state2);
+  IF_FREE(ep->script);
+  FREE(ep);
+}
+
+/**
  * engrave_program_script_set - attach a script to the program.
  * @param ep: The Engrave_Program to attach the script too.
  * @param script: The script to attach to the program.
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/engrave/src/lib/engrave_program.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -3 -r1.6 -r1.7
--- engrave_program.h   13 Nov 2004 21:06:57 -0000      1.6
+++ engrave_program.h   13 Nov 2004 23:44:36 -0000      1.7
@@ -49,6 +49,8 @@
 };
 
 Engrave_Program *engrave_program_new(void);
+void engrave_program_free(Engrave_Program *ep);
+
 void engrave_program_script_set(Engrave_Program *ep, char *script);
 void engrave_program_name_set(Engrave_Program *ep, char *name);
 void engrave_program_signal_set(Engrave_Program *ep, char *signal);




-------------------------------------------------------
This SF.Net email is sponsored by: InterSystems CACHE
FREE OODBMS DOWNLOAD - A multidimensional database that combines
robust object and relational technologies, making it a perfect match
for Java, C++,COM, XML, ODBC and JDBC. www.intersystems.com/match8
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to