fix 1 memleak...

SVN revision: 7264
This commit is contained in:
Carsten Haitzler 2003-07-30 02:58:22 +00:00
parent 84544019f0
commit 107230b052
8 changed files with 27 additions and 11 deletions

View File

@ -108,6 +108,8 @@ next_token(char *p, char *end, char **new_p, int *delim)
{
if ((!in_quote) && (*p == '/') && (p < (end - 1)) && (*(p + 1) == '/'))
in_comment_ss = 1;
if ((!in_quote) && (*p == '#'))
in_comment_ss = 1;
if ((!in_quote) && (*p == '/') && (p < (end - 1)) && (*(p + 1) == '*'))
{
in_comment_sa = 1;

View File

@ -470,8 +470,8 @@ _edje_part_recalc_single(Edje *ed,
/* fill */
params->smooth = desc->fill.smooth;
params->fill.x = desc->fill.pos_abs_x + (params->w * desc->fill.pos_rel_x);
params->fill.w = desc->fill.abs_x + (params->w * desc->fill.rel_x);
params->fill.y = desc->fill.pos_abs_y + (params->h * desc->fill.pos_rel_y);
params->fill.w = desc->fill.abs_x + (params->w * desc->fill.rel_x);
params->fill.h = desc->fill.abs_y + (params->h * desc->fill.rel_y);
/* colors */
params->color.r = desc->color.r;

View File

@ -290,6 +290,7 @@ _edje_file_add(Edje *ed)
snprintf(buf, sizeof(buf), "collections/%i", id);
if (!ef) eet_open(ed->path, EET_FILE_MODE_READ);
if (!ef) goto out;
/* collection leaks? */
ed->collection = eet_data_read(ef,
_edje_edd_edje_part_collection,
buf);
@ -312,6 +313,9 @@ _edje_file_add(Edje *ed)
void
_edje_file_del(Edje *ed)
{
/* segv's sometimes happen after here... */
/* avoid segv's... but LEAK */
/* return; */
if (ed->collection)
{
ed->collection->references--;
@ -333,8 +337,9 @@ _edje_file_del(Edje *ed)
Edje_Real_Part *rp;
rp = ed->parts->data;
ed->parts = evas_list_remove(ed->parts, rp);
_edje_text_part_on_del(ed, rp);
evas_object_del(rp->object);
// evas_object_del(rp->object);
if (rp->swallowed_object)
{
evas_object_event_callback_del(rp->swallowed_object,
@ -347,7 +352,6 @@ _edje_file_del(Edje *ed)
if (rp->text.cache.in_str) free(rp->text.cache.in_str);
if (rp->text.cache.out_str) free(rp->text.cache.out_str);
free(rp);
ed->parts = evas_list_remove(ed->parts, ed->parts->data);
}
ed->parts = NULL;
}
@ -389,7 +393,8 @@ _edje_file_free(Edje_File *edf)
Edje_Image_Directory_Entry *ie;
ie = edf->image_dir->entries->data;
edf->image_dir->entries = evas_list_remove(edf->image_dir->entries, ie);
edf->image_dir->entries =
evas_list_remove(edf->image_dir->entries, ie);
if (ie->entry) free(ie->entry);
free(ie);
}
@ -402,7 +407,8 @@ _edje_file_free(Edje_File *edf)
Edje_Part_Collection_Directory_Entry *ce;
ce = edf->collection_dir->entries->data;
edf->collection_dir->entries = evas_list_remove(edf->collection_dir->entries, ce);
edf->collection_dir->entries =
evas_list_remove(edf->collection_dir->entries, ce);
if (ce->entry) free(ce->entry);
free(ce);
}
@ -454,11 +460,14 @@ _edje_collection_free(Edje_Part_Collection *ec)
ep->other_desc = evas_list_remove(ep->other_desc, desc);
_edje_collection_free_part_description_free(desc);
}
free(ep);
}
if (ec->prog_cache.no_matches) evas_hash_free(ec->prog_cache.no_matches);
if (ec->prog_cache.matches)
{
evas_hash_foreach(ec->prog_cache.matches, _edje_collection_free_prog_cache_matches_free_cb, NULL);
evas_hash_foreach(ec->prog_cache.matches,
_edje_collection_free_prog_cache_matches_free_cb,
NULL);
evas_hash_free(ec->prog_cache.matches);
}
free(ec);

View File

@ -36,7 +36,9 @@ _edje_del(Edje *ed)
{
_edje_file_del(ed);
if (ed->path) free(ed->path);
ed->path = NULL;
if (ed->part) free(ed->part);
ed->part = NULL;
while (ed->callbacks)
{
Edje_Signal_Callback *escb;

View File

@ -233,11 +233,12 @@ struct _Edje_Part
Evas_List *other_desc; /* other possible descriptors */
struct {
char x; /* can u click & drag this bit in x dir */
int step_x; /* drag jumps n pixels (0 = no limit) */
int count_x; /* drag area divided by n (0 = no limit) */
char y; /* can u click & drag this bit in y dir */
int step_x; /* drag jumps n pixels (0 = no limit) */
int step_y; /* drag jumps n pixels (0 = no limit) */
int count_x; /* drag area divided by n (0 = no limit) */
int count_y; /* drag area divided by n (0 = no limit) */
int confine_id; /* dragging within this bit, -1 = no */

View File

@ -448,7 +448,7 @@ _edje_emit(Edje *ed, char *sig, char *src)
recursions++;
_edje_ref(ed);
_edje_freeze(ed);
printf("EMIT \"%s\" \"%s\"\n", sig, src);
// printf("EMIT \"%s\" \"%s\"\n", sig, src);
ee = calloc(1, sizeof(Edje_Emission));
if (!ee)
{

View File

@ -57,7 +57,6 @@ _edje_smart_add(Evas_Object * obj)
if (!ed) return;
evas_object_smart_data_set(obj, ed);
ed->obj = obj;
evas_object_smart_member_add(ed->clipper, ed->obj);
_edje_edjes = evas_list_append(_edje_edjes, obj);
}

View File

@ -249,6 +249,7 @@ edje_object_part_swallow(Evas_Object *obj, const char *part, Evas_Object *obj_sw
if (!rp) return;
if (rp->swallowed_object)
{
evas_object_smart_member_del(rp->swallowed_object);
evas_object_event_callback_del(rp->swallowed_object,
EVAS_CALLBACK_FREE,
_edje_object_part_swallow_free_cb);
@ -257,6 +258,7 @@ edje_object_part_swallow(Evas_Object *obj, const char *part, Evas_Object *obj_sw
}
if (!obj_swallow) return;
rp->swallowed_object = obj_swallow;
evas_object_smart_member_add(rp->swallowed_object, ed->obj);
evas_object_clip_set(rp->swallowed_object, ed->clipper);
if (evas_object_layer_get(rp->swallowed_object) != ed->layer)
evas_object_layer_set(rp->swallowed_object, ed->layer);
@ -357,6 +359,7 @@ edje_object_part_unswallow(Evas_Object *obj, Evas_Object *obj_swallow)
rp = l->data;
if (rp->swallowed_object == obj_swallow)
{
evas_object_smart_member_del(rp->swallowed_object);
evas_object_clip_unset(rp->swallowed_object);
rp->swallowed_object = NULL;
rp->swallow_params.min.w = 0;