From: a bellenir Date: Sat, 26 Jul 2014 01:50:20 +0000 (+0000) Subject: wip: diagnosing memleaks X-Git-Url: https://git.mdlowis.com/?a=commitdiff_plain;h=44ff310be24bc9bc09af826e050bdc41c8da1d3d;p=archive%2Fafm.git wip: diagnosing memleaks --- diff --git a/source/screen.c b/source/screen.c index 93aa93e..2402c44 100644 --- a/source/screen.c +++ b/source/screen.c @@ -33,6 +33,7 @@ void screen_init(void) { } void screen_deinit(void) { + fprintf(stderr, "deinitializing screen\n"); mem_release(Screen_List); } @@ -123,6 +124,7 @@ static frame_t* screen_frame_new(void) { } static void screen_frame_free(void* p_frame_ptr) { + fprintf(stderr, "freeing frame\n"); frame_t* p_frame = (frame_t*)p_frame_ptr; wclear(p_frame->p_win); wborder(p_frame->p_win, ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '); diff --git a/source/workdir.c b/source/workdir.c index 6e16149..da8989c 100644 --- a/source/workdir.c +++ b/source/workdir.c @@ -1,3 +1,4 @@ +/* external libraries */ #include #include #include @@ -5,8 +6,11 @@ #include #include +/* internal libraries */ #include "vec.h" #include "mem.h" + +/* internal headers */ #include "state.h" #include "workdir.h" #include "screen.h" @@ -33,6 +37,7 @@ WorkDir_T* workdir_new(char* path){ void workdir_free(void* p_wd){ WorkDir_T* wd = (WorkDir_T*)p_wd; + fprintf(stderr, "freeing workdir\n"); mem_release(wd->vfiles); mem_release(wd->path); } @@ -128,6 +133,7 @@ void workdir_ls(WorkDir_T* wd){ free(filename); filename = 0; } + pclose(ls); //mem_release(dotdot); #dont free, because there's a bug(?) in vectors and reference counting //reference counter is not incremented for added items, so releasinghere will free the memory mem_release(cmd);