[Bf-blender-cvs] [012445eb140] soc-2021-simulation-display: Fix memmory error in function for storing convex hull collision shape mesh data.

soumya pochiraju noreply at git.blender.org
Sun Aug 15 13:34:11 CEST 2021


Commit: 012445eb140caa6031b4f6fcec922a0a8defb50f
Author: soumya pochiraju
Date:   Sat Aug 14 23:40:17 2021 +0530
Branches: soc-2021-simulation-display
https://developer.blender.org/rB012445eb140caa6031b4f6fcec922a0a8defb50f

Fix memmory error in function for storing convex hull collision shape mesh data.

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

M	source/blender/blenkernel/intern/rigidbody.c

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

diff --git a/source/blender/blenkernel/intern/rigidbody.c b/source/blender/blenkernel/intern/rigidbody.c
index d7d304cce5d..19fbf3a9c28 100644
--- a/source/blender/blenkernel/intern/rigidbody.c
+++ b/source/blender/blenkernel/intern/rigidbody.c
@@ -202,7 +202,7 @@ void BKE_rigidbody_free_object(Object *ob, RigidBodyWorld *rbw)
     }
 
     if (rbo->col_shape_draw_data) {
-        BKE_mesh_clear_geometry(rbo->col_shape_draw_data);
+        BKE_mesh_free(rbo->col_shape_draw_data);
     }
 
     MEM_freeN(rbo->shared);
@@ -420,13 +420,14 @@ static void rigidbody_store_convex_hull_draw_data(Object *ob) {
     else {
       CLOG_ERROR(&LOG, "cannot make Convex Hull collision shape for non-Mesh object");
     }
-    float (*verts)[3] = MEM_malloc_arrayN(totvert, sizeof(float)*3, __func__);
+    float (*verts)[3] = (float(*)[3])MEM_malloc_arrayN(sizeof(float[3]), totvert, __func__);
     for(int i=0; i<totvert; i++){
+       // verts[i] = (float*)MEM_malloc_arrayN(sizeof(float), 3, __func__);
         copy_v3_v3(verts[i], mvert[i].co);
     }
 
     plConvexHull hull = plConvexHullCompute((float(*)[3])verts, totvert);
-    free(verts);
+    MEM_freeN(verts);
     const int num_verts = plConvexHullNumVertices(hull);
     const int num_faces = num_verts <= 2 ? 0 : plConvexHullNumFaces(hull);
     const int num_loops = num_verts <= 2 ? 0 : plConvexHullNumLoops(hull);



More information about the Bf-blender-cvs mailing list