diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/glfww.c | 1 | ||||
-rw-r--r-- | src/point.c | 26 | ||||
-rw-r--r-- | src/util.c | 13 | ||||
-rw-r--r-- | src/util.h | 4 |
4 files changed, 39 insertions, 5 deletions
diff --git a/src/glfww.c b/src/glfww.c index 91bf7cd..3203bcd 100644 --- a/src/glfww.c +++ b/src/glfww.c @@ -25,6 +25,7 @@ GLFWwindow* glfw_init(){ int w,h; glfwGetFramebufferSize(window,&w,&h); glViewport(0,0,w,h); + info("yay:D i made a window uwu"); return window; /* while(!glfwWindowShouldClose(window)){ diff --git a/src/point.c b/src/point.c index 03c72cc..4513625 100644 --- a/src/point.c +++ b/src/point.c @@ -265,8 +265,11 @@ point_arr* square_gen(double* tl, double* tr, double* bl, double*br){ join_cords(a,c); join_cords(a,d); free(b->c); + free(b); free(c->c); + free(c); free(d->c); + free(d); return a; } point_arr* cube_gen(double* tl, double* tr, double* bl, double*br, @@ -277,22 +280,29 @@ point_arr* cube_gen(double* tl, double* tr, double* bl, double*br, double s; join_cords(a,b); free(b->c); + free(b); point_arr* c = square_gen(tl2,tr2,tl,tr); join_cords(a,c); free(c->c); + free(c); point_arr* d = square_gen(bl2,br2,bl,br); join_cords(a,d); - free(d->c); + free(d->c); + free(d); point_arr* e = square_gen(tl,tl2,bl,bl2); join_cords(a,e); - free(e->c); + free(e->c); + free(e); point_arr* f = square_gen(br2,br,tr2,tr); join_cords(a,f); - free(f->c); + free(f->c); + free(f); return a; } -int main(){ +int main(int argc,char*argv[]){ + flag_handle(argc,argv); + atexit(sig_handle); GLFWwindow* w = glfw_init(); refresh_size(w); GLenum err = glewInit(); @@ -304,6 +314,7 @@ int main(){ GLuint fid = fshader_comp(fshader_src); prog = build_shader(vid,fid); glUseProgram(prog); + info("built shaders"); double tl2[3] = {5.0,200.0,400.0}; double tr2[3] = {200.0,200.0,400.0}; double bl2[3] = {5.0,5.0,200.0}; @@ -401,8 +412,13 @@ int main(){ if(glfwWindowShouldClose(w))break; } - free(a->c); + free(a->c); + free(a); glfwDestroyWindow(w); win_clean(); + glDeleteShader(vid); + glDeleteShader(fid); + glDeleteShader(prog); + info("killed window:p"); return 0; } @@ -2,6 +2,15 @@ #include <stdlib.h> #include "util.h" #include "strings.h" +double allocs = 0; +//#define malloc(X) mmalloc(X); +void mmalloc(){ + allocs++; +} +//#define free(X) ffree(X); +void ffree(){ + allocs--; +} int log_level = 0; int __signal = 0; void pexit(int s){ @@ -9,6 +18,10 @@ void pexit(int s){ exit(s); } void sig_handle(void){ + if(allocs>0) + warn("uneven allocations, memory leak(s)"); + if(allocs==0) + info("even allocations, no internal leaks"); if(__signal==0){ printf("\x1b[90mexited with \x1b[32m\x1b[1msignal [ %i ] \x1b[0m\x1b[90mgraceful exit\x1b[0m\n",__signal); } else if(__signal>0){ @@ -6,6 +6,10 @@ #include "string.h" #define greater(a,b) (a>b?a:b) #define lesser(a,b) (a>b?b:a) +#define malloc(X) malloc(X); mmalloc(); +void mmalloc(); +#define free(X) free(X); ffree(); +void ffree(); void err_m(char*,void (*)(int),char*,int); void warn_m(char*,char*,int ,...); void info_m(char*,char*,int ,...); |