Enlightenment CVS committal

Author  : tsauerbeck
Project : e17
Module  : libs/edje

Dir     : e17/libs/edje/src/lib


Modified Files:
        Edje.h edje_data.c edje_main.c edje_private.h 


Log Message:
more memory management improvements. applications should call edje_shutdown() now.
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/edje/src/lib/Edje.h,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -3 -r1.23 -r1.24
--- Edje.h      4 Nov 2003 06:15:18 -0000       1.23
+++ Edje.h      12 Jan 2004 17:41:47 -0000      1.24
@@ -21,6 +21,7 @@
 #endif
    
    void         edje_init                       (void);
+   void         edje_shutdown                   (void);
    void         edje_frametime_set              (double t);
    double       edje_frametime_get              (void);
    void         edje_freeze                     (void);
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/edje/src/lib/edje_data.c,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -3 -r1.14 -r1.15
--- edje_data.c 7 Jan 2004 00:35:31 -0000       1.14
+++ edje_data.c 12 Jan 2004 17:41:47 -0000      1.15
@@ -24,6 +24,30 @@
                              (void *(*) (void *, const char *, void *))evas_hash_add, 
\
                              (void  (*) (void *))evas_hash_free)
 
+#define FREED(eed) \
+   if (eed) \
+   { \
+      eet_data_descriptor_free((eed)); \
+      (eed) = NULL; \
+   }
+
+void
+_edje_edd_free(void)
+{
+   FREED(_edje_edd_edje_file);
+   FREED(_edje_edd_edje_data);
+   FREED(_edje_edd_edje_image_directory);
+   FREED(_edje_edd_edje_image_directory_entry);
+   FREED(_edje_edd_edje_program);
+   FREED(_edje_edd_edje_program_target);
+   FREED(_edje_edd_edje_part_collection_directory);
+   FREED(_edje_edd_edje_part_collection_directory_entry);
+   FREED(_edje_edd_edje_part_collection);
+   FREED(_edje_edd_edje_part);
+   FREED(_edje_edd_edje_part_description);
+   FREED(_edje_edd_edje_part_image_id);
+}
+
 void
 _edje_edd_setup(void)
 {
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/edje/src/lib/edje_main.c,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -3 -r1.26 -r1.27
--- edje_main.c 30 Oct 2003 04:45:18 -0000      1.26
+++ edje_main.c 12 Jan 2004 17:41:47 -0000      1.27
@@ -1,15 +1,25 @@
 #include "Edje.h"
 #include "edje_private.h"
 
+static int initted = 0;
+
 void
 edje_init(void)
 {
-   static int initted = 0;
-   
    if (initted) return;
    initted = 1;
    _edje_edd_setup();
    _edje_text_init();
+}
+
+void
+edje_shutdown(void)
+{
+   if (!initted) return;
+
+   _edje_edd_free();
+
+   initted = 0;
 }
 
 Edje *
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/edje/src/lib/edje_private.h,v
retrieving revision 1.53
retrieving revision 1.54
diff -u -3 -r1.53 -r1.54
--- edje_private.h      12 Jan 2004 02:13:11 -0000      1.53
+++ edje_private.h      12 Jan 2004 17:41:48 -0000      1.54
@@ -560,6 +560,7 @@
 int   _edje_pending_timer_cb(void *data);
 
 void  _edje_edd_setup(void);
+void  _edje_edd_free(void);
 
 void  _edje_file_add(Edje *ed);
 void  _edje_file_del(Edje *ed);




-------------------------------------------------------
This SF.net email is sponsored by: Perforce Software.
Perforce is the Fast Software Configuration Management System offering
advanced branching capabilities and atomic changes on 50+ platforms.
Free Eval! http://www.perforce.com/perforce/loadprog.html
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to