xlib_playground

Xlib playground for experiments.
Log | Files | Refs

commit c4cc33a67a2c2b70ff95abb8b41b24ca29c2ed0c
parent eadd9855ae9657076e01f3af4f412ffa6310bc85
Author: Matsuda Kenji <info@mtkn.jp>
Date:   Sun, 15 Jan 2023 08:34:36 +0900

Fix memory leak.

Diffstat:
Mex9/list.c | 8++++++++
Mex9/list.h | 1+
Mex9/main.c | 3---
Mex9/object.c | 9++++-----
4 files changed, 13 insertions(+), 8 deletions(-)

diff --git a/ex9/list.c b/ex9/list.c @@ -207,3 +207,11 @@ leqi(List *p, List *q, int (*eq)(void *, void*)) return 0; } +unsigned long int +llen(List *p) +{ + unsigned long len = 0; + for (; p != NULL; p = p->next) + len++; + return len; +} diff --git a/ex9/list.h b/ex9/list.h @@ -14,3 +14,4 @@ int lqsort(List *p, int (* cmp)(void *, void *)); void lswap(List *p, List *q); int leqa(List *p, List *q); int leqi(List *p, List *q, int (*eq)(void *, void *)); +unsigned long int llen(List *); diff --git a/ex9/main.c b/ex9/main.c @@ -317,9 +317,6 @@ game_play(void) } } lfreei(ol, (void (*)(void *))&free_object); - printf("obj_count: %d\n", get_obj_count()); - printf("lld_count: %d\n", get_lld_count()); - printf("list_count: %d\n", get_list_count()); } void diff --git a/ex9/object.c b/ex9/object.c @@ -314,8 +314,7 @@ lhandle_collision(List *p) l->o1 = (Object *)t->item; l->dist = object_dist((Object *)s->item, (Object *)t->item); - tmplld = laddfront(lld, l); - if (tmplld == NULL) { + if((tmplld = laddfront(lld, l)) == NULL){ fprintf(stderr, "lhandle_collision: Error. Could not" "add item to lld\n"); exit(1); @@ -331,16 +330,16 @@ lhandle_collision(List *p) ((LLD *)tmplld->item)->o1); } } - lfreei(lld, &lldfree); + lfreei(lld, (void (*)(void *))&lldfree); lfree(stack); stack = NULL; } - tmp = laddfront(stack, p->item); - if (tmp == NULL) { + if ((tmp = laddfront(stack, p->item)) == NULL) { fprintf(stderr, "lhandle_collision: Error. add item to stack\n"); exit(1); } stack = tmp; } + lfree(stack); return; }