Commit 2ceaf6adf56b5a8779927a81bd1fbff46ed7a6ff

Thomas de Grivel 2025-04-23T16:38:53

fix leak

diff --git a/window/sdl2/configure b/window/sdl2/configure
index 26786f6..453a39b 100755
--- a/window/sdl2/configure
+++ b/window/sdl2/configure
@@ -40,7 +40,7 @@ OBJECTS_DEBUG="$(c2ext .debug.lo "$SOURCES")"
 # Common config for all targets
 CPPFLAGS="-I../.. $CPPFLAGS"
 CFLAGS="$CFLAGS -W -Wall -Werror -std=c11 -pedantic -pipe"
-LDFLAGS="--shared ${LDFLAGS}"
+LDFLAGS="--shared -rdynamic ${LDFLAGS}"
 config_asan
 config_gnu
 config_i386
diff --git a/window/sdl2/demo/window_sdl2_demo.c b/window/sdl2/demo/window_sdl2_demo.c
index 725e483..0e51142 100644
--- a/window/sdl2/demo/window_sdl2_demo.c
+++ b/window/sdl2/demo/window_sdl2_demo.c
@@ -17,6 +17,7 @@
 #include "../gl_font.h"
 #include "../gl_lines.h"
 #include "../mat4.h"
+#include "../gl_object.h"
 #include "../gl_ortho.h"
 #include "../gl_square.h"
 #include "../gl_text.h"
@@ -156,6 +157,7 @@ bool window_sdl2_demo_key (s_window_sdl2 *window, SDL_Keysym *keysym)
 
 bool window_sdl2_demo_load (s_window_sdl2 *window)
 {
+  s_gl_object obj = {0};
   f32 point_per_pixel;
   assert(window);
   assert(glGetError() == GL_NO_ERROR);
@@ -227,6 +229,9 @@ bool window_sdl2_demo_load (s_window_sdl2 *window)
                 matrix_load, matrix_render,
                 matrix_unload, window);
   window_set_sequence_pos((s_window *) window, 0);
+  goto ok;
+  gl_object_clean(&obj);
+ ok:
   return true;
 }