forked from enlightenment/efl
more memory management improvements. applications should call edje_shutdown() now.
SVN revision: 8355
This commit is contained in:
parent
1b485c4149
commit
aa22ce4442
|
@ -21,6 +21,7 @@ extern "C" {
|
|||
#endif
|
||||
|
||||
void edje_init (void);
|
||||
void edje_shutdown (void);
|
||||
void edje_frametime_set (double t);
|
||||
double edje_frametime_get (void);
|
||||
void edje_freeze (void);
|
||||
|
|
|
@ -24,6 +24,30 @@ Eet_Data_Descriptor *_edje_edd_edje_part_image_id = NULL;
|
|||
(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)
|
||||
{
|
||||
|
|
|
@ -1,17 +1,27 @@
|
|||
#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 *
|
||||
_edje_add(Evas_Object *obj)
|
||||
{
|
||||
|
|
|
@ -560,6 +560,7 @@ int _edje_timer_cb(void *data);
|
|||
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);
|
||||
|
|
Loading…
Reference in New Issue