Revision: 46904
          
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=46904
Author:   psy-fi
Date:     2012-05-22 17:33:58 +0000 (Tue, 22 May 2012)
Log Message:
-----------
Fix memory leak when deleting all vertices from mesh with certain modifiers 
(bevel and array among them) and VBO are enabled.

Modified Paths:
--------------
    trunk/blender/source/blender/gpu/intern/gpu_buffers.c

Modified: trunk/blender/source/blender/gpu/intern/gpu_buffers.c
===================================================================
--- trunk/blender/source/blender/gpu/intern/gpu_buffers.c       2012-05-22 
16:24:09 UTC (rev 46903)
+++ trunk/blender/source/blender/gpu/intern/gpu_buffers.c       2012-05-22 
17:33:58 UTC (rev 46904)
@@ -102,7 +102,7 @@
        if (useVBOs == -1)
                useVBOs = (GLEW_ARB_vertex_buffer_object ? 1 : 0);
 
-       pool = MEM_callocN(sizeof(GPUBufferPool), "GPUBuffer");
+       pool = MEM_callocN(sizeof(GPUBufferPool), "GPUBuffer_Pool");
 
        pool->maxsize = MAX_FREE_GPU_BUFFERS;
        pool->buffers = MEM_callocN(sizeof(GPUBuffer *) * pool->maxsize,
@@ -192,6 +192,12 @@
        GPUBuffer *buf;
        int i, bufsize, bestfit = -1;
 
+       /* bad case, leads to leak of buf since buf->pointer will allocate
+        * NULL, leading to return without cleanup. In any case better detect 
early
+        * psy-fi */
+       if(size == 0)
+               return NULL;
+
        pool = gpu_get_global_buffer_pool();
 
        /* not sure if this buffer pool code has been profiled much,

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to