]> git.lizzy.rs Git - dragonblocks_alpha.git/blobdiff - src/client/model.c
Fix memory leak in model.c
[dragonblocks_alpha.git] / src / client / model.c
index 93bc773895b88744e6f3222ae3a2c20f2d9046a7..7c1c1e2b6170e7a5da819538e7011fcbf373a19d 100644 (file)
@@ -6,7 +6,7 @@
 #include "client/camera.h"
 #include "client/client_config.h"
 #include "client/frustum.h"
-#include "client/gl_debug.h"
+#include "client/opengl.h"
 #include "client/model.h"
 
 typedef struct {
@@ -107,6 +107,8 @@ static void delete_node(ModelNode *node)
        list_clr(&node->children, &delete_node, NULL, NULL);
        array_clr(&node->meshes);
 
+       if (node->name)
+               free(node->name);
        free(node);
 }
 
@@ -129,6 +131,8 @@ static ModelNode *clone_node(ModelNode *original, ModelNode *parent)
 {
        ModelNode *node = malloc(sizeof *node);
        *node = *original;
+       if (original->name)
+               node->name = strdup(original->name);
        init_node(node, parent);
 
        array_cln(&node->meshes, &original->meshes);
@@ -189,7 +193,7 @@ void model_init()
        list_ini(&scene_new);
 
        pthread_mutex_init(&lock_scene_new, NULL);
-       glGetIntegerv(GL_MAX_TEXTURE_UNITS, &units); GL_DEBUG
+       units = opengl_texture_batch_units();
 }
 
 // ded