[Bf-blender-cvs] [0d68f55789a] master: DrawManager: Fixed memory leak in test cases

Jeroen Bakker noreply at git.blender.org
Tue Sep 8 13:23:28 CEST 2020


Commit: 0d68f55789aff106bdf9e038812d358ca55c060f
Author: Jeroen Bakker
Date:   Tue Sep 8 10:40:30 2020 +0200
Branches: master
https://developer.blender.org/rB0d68f55789aff106bdf9e038812d358ca55c060f

DrawManager: Fixed memory leak in test cases

Memory leak is introduced as test cases reinitializes the GPU stack.
Added a call to GPU_backend_exit to fix this.

In GPU_backend_exit the GPU backend was destroyed but the pointer wasn't
reset for reuse. This patch also clears the pointer to be reused.

===================================================================

M	source/blender/draw/tests/shaders_test.cc
M	source/blender/gpu/intern/gpu_context.cc

===================================================================

diff --git a/source/blender/draw/tests/shaders_test.cc b/source/blender/draw/tests/shaders_test.cc
index eb7a37711e6..95474dad8b8 100644
--- a/source/blender/draw/tests/shaders_test.cc
+++ b/source/blender/draw/tests/shaders_test.cc
@@ -37,6 +37,7 @@ class DrawTest : public ::testing::Test {
   void TearDown() override
   {
     GPU_exit();
+    GPU_backend_exit();
     GPU_context_discard(context);
     GHOST_DisposeOpenGLContext(ghost_system, ghost_context);
     GHOST_DisposeSystem(ghost_system);
diff --git a/source/blender/gpu/intern/gpu_context.cc b/source/blender/gpu/intern/gpu_context.cc
index 188225b3eed..119c1ef9c55 100644
--- a/source/blender/gpu/intern/gpu_context.cc
+++ b/source/blender/gpu/intern/gpu_context.cc
@@ -185,6 +185,7 @@ void GPU_backend_exit(void)
   /* TODO assert no resource left. Currently UI textures are still not freed in their context
    * correctly. */
   delete g_backend;
+  g_backend = NULL;
 }
 
 GPUBackend *GPUBackend::get(void)



More information about the Bf-blender-cvs mailing list