Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClément Foucault <foucault.clem@gmail.com>2017-02-02 19:15:26 +0300
committerClément Foucault <foucault.clem@gmail.com>2017-02-02 19:15:26 +0300
commit8641fa13972e79d17ba35fd35ee7bcf1518007ff (patch)
tree8023f429132a6f0f5e915145e2bd1133a53b8133
parentb12d2fb922c539915b054ebd0d9bb091f6768ee8 (diff)
Fix unfreed memory
-rw-r--r--source/blender/draw/intern/draw_cache.c26
-rw-r--r--source/blender/draw/intern/draw_cache.h2
-rw-r--r--source/blender/draw/intern/draw_manager.c2
3 files changed, 30 insertions, 0 deletions
diff --git a/source/blender/draw/intern/draw_cache.c b/source/blender/draw/intern/draw_cache.c
index d3e422abfd4..b41c232847c 100644
--- a/source/blender/draw/intern/draw_cache.c
+++ b/source/blender/draw/intern/draw_cache.c
@@ -51,6 +51,32 @@ static struct DRWShapeCache{
Batch *drw_lamp;
} SHC = {NULL};
+void DRW_shape_cache_free(void)
+{
+ if (SHC.drw_single_vertice)
+ Batch_discard_all(SHC.drw_single_vertice);
+ if (SHC.drw_fullscreen_quad)
+ Batch_discard_all(SHC.drw_fullscreen_quad);
+ if (SHC.drw_plain_axes)
+ Batch_discard_all(SHC.drw_plain_axes);
+ if (SHC.drw_single_arrow)
+ Batch_discard_all(SHC.drw_single_arrow);
+ if (SHC.drw_single_arrow_line)
+ Batch_discard_all(SHC.drw_single_arrow_line);
+ if (SHC.drw_cube)
+ Batch_discard_all(SHC.drw_cube);
+ if (SHC.drw_circle)
+ Batch_discard_all(SHC.drw_circle);
+ if (SHC.drw_empty_sphere)
+ Batch_discard_all(SHC.drw_empty_sphere);
+ if (SHC.drw_empty_cone)
+ Batch_discard_all(SHC.drw_empty_cone);
+ if (SHC.drw_arrows)
+ Batch_discard_all(SHC.drw_arrows);
+ if (SHC.drw_lamp)
+ Batch_discard_all(SHC.drw_lamp);
+}
+
/* Quads */
Batch *DRW_cache_fullscreen_quad_get(void)
{
diff --git a/source/blender/draw/intern/draw_cache.h b/source/blender/draw/intern/draw_cache.h
index b5d57e58a48..881fc2b529b 100644
--- a/source/blender/draw/intern/draw_cache.h
+++ b/source/blender/draw/intern/draw_cache.h
@@ -29,6 +29,8 @@
struct Batch;
struct Object;
+void DRW_shape_cache_free(void);
+
/* Common Shapes */
struct Batch *DRW_cache_fullscreen_quad_get(void);
struct Batch *DRW_cache_single_vert_get(void);
diff --git a/source/blender/draw/intern/draw_manager.c b/source/blender/draw/intern/draw_manager.c
index 7fd32d07d33..b2766fb7163 100644
--- a/source/blender/draw/intern/draw_manager.c
+++ b/source/blender/draw/intern/draw_manager.c
@@ -1134,5 +1134,7 @@ void DRW_engines_free(void)
{
clay_engine_free();
+ DRW_shape_cache_free();
+
BLI_remlink(&R_engines, &viewport_clay_type);
} \ No newline at end of file