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
path: root/source
diff options
context:
space:
mode:
authorPablo Dobarro <pablodp606>2021-02-03 22:54:30 +0300
committerPablo Dobarro <pablodp606@gmail.com>2021-02-03 22:55:17 +0300
commit7bde2844ae8fcf5547edc495a0518cfdad49ffff (patch)
tree8e037ad5e528b4002e1e57fcf98d5e8196579860 /source
parent5eb5a7f4b7d7c5228ec9596b35e7f2e317aad97d (diff)
Fix memory leak in boundary brush preview data
The edge preview data of the boundary needs to be freed with the boundary data created for the brush. Also, all data for the ScultpSession preview that is used to render the cursor needs to be freed with the ##SculptSession##. Found by Jacques Lucke Reviewed By: JacquesLucke Differential Revision: https://developer.blender.org/D10173
Diffstat (limited to 'source')
-rw-r--r--source/blender/blenkernel/intern/paint.c8
-rw-r--r--source/blender/editors/sculpt_paint/sculpt_boundary.c1
2 files changed, 9 insertions, 0 deletions
diff --git a/source/blender/blenkernel/intern/paint.c b/source/blender/blenkernel/intern/paint.c
index 4eecf3a3a87..7c65f118cf4 100644
--- a/source/blender/blenkernel/intern/paint.c
+++ b/source/blender/blenkernel/intern/paint.c
@@ -1487,6 +1487,14 @@ void BKE_sculptsession_free(Object *ob)
MEM_SAFE_FREE(ss->pose_ik_chain_preview);
}
+ if (ss->boundary_preview) {
+ MEM_SAFE_FREE(ss->boundary_preview->vertices);
+ MEM_SAFE_FREE(ss->boundary_preview->edges);
+ MEM_SAFE_FREE(ss->boundary_preview->distance);
+ MEM_SAFE_FREE(ss->boundary_preview->edit_info);
+ MEM_SAFE_FREE(ss->boundary_preview);
+ }
+
BKE_sculptsession_free_vwpaint_data(ob->sculpt);
MEM_freeN(ss);
diff --git a/source/blender/editors/sculpt_paint/sculpt_boundary.c b/source/blender/editors/sculpt_paint/sculpt_boundary.c
index 64f2542dcbe..0cfb6f17adb 100644
--- a/source/blender/editors/sculpt_paint/sculpt_boundary.c
+++ b/source/blender/editors/sculpt_paint/sculpt_boundary.c
@@ -530,6 +530,7 @@ SculptBoundary *SCULPT_boundary_data_init(Object *object,
void SCULPT_boundary_data_free(SculptBoundary *boundary)
{
MEM_SAFE_FREE(boundary->vertices);
+ MEM_SAFE_FREE(boundary->edges);
MEM_SAFE_FREE(boundary->distance);
MEM_SAFE_FREE(boundary->edit_info);
MEM_SAFE_FREE(boundary->bend.pivot_positions);