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