[Bf-blender-cvs] [15ac4b4] blender-v2.77-release: Fix uninitialized memory use lattice-boundbox

Campbell Barton noreply at git.blender.org
Fri Mar 4 17:36:19 CET 2016


Commit: 15ac4b4f9b7223251ecb89806a54f71f7d57afe3
Author: Campbell Barton
Date:   Fri Mar 4 21:50:54 2016 +1100
Branches: blender-v2.77-release
https://developer.blender.org/rB15ac4b4f9b7223251ecb89806a54f71f7d57afe3

Fix uninitialized memory use lattice-boundbox

Many other places weren't clearing boundbox dirty flag after calculation.

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

M	source/blender/blenkernel/intern/DerivedMesh.c
M	source/blender/blenkernel/intern/armature.c
M	source/blender/blenkernel/intern/displist.c
M	source/blender/blenkernel/intern/lattice.c
M	source/blender/blenkernel/intern/mball.c

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

diff --git a/source/blender/blenkernel/intern/DerivedMesh.c b/source/blender/blenkernel/intern/DerivedMesh.c
index 423e897..fb98cc1 100644
--- a/source/blender/blenkernel/intern/DerivedMesh.c
+++ b/source/blender/blenkernel/intern/DerivedMesh.c
@@ -3655,6 +3655,8 @@ void DM_set_object_boundbox(Object *ob, DerivedMesh *dm)
 		ob->bb = MEM_callocN(sizeof(BoundBox), "DM-BoundBox");
 
 	BKE_boundbox_init_from_minmax(ob->bb, min, max);
+
+	ob->bb->flag &= ~BOUNDBOX_DIRTY;
 }
 
 /* --- NAVMESH (begin) --- */
diff --git a/source/blender/blenkernel/intern/armature.c b/source/blender/blenkernel/intern/armature.c
index 74fffdd..54fe989 100644
--- a/source/blender/blenkernel/intern/armature.c
+++ b/source/blender/blenkernel/intern/armature.c
@@ -2221,8 +2221,7 @@ static void boundbox_armature(Object *ob)
 	float min[3], max[3];
 
 	if (ob->bb == NULL) {
-		ob->bb = MEM_mallocN(sizeof(BoundBox), "Armature boundbox");
-		ob->bb->flag = 0;
+		ob->bb = MEM_callocN(sizeof(BoundBox), "Armature boundbox");
 	}
 	bb = ob->bb;
 
@@ -2233,6 +2232,8 @@ static void boundbox_armature(Object *ob)
 	}
 
 	BKE_boundbox_init_from_minmax(bb, min, max);
+
+	bb->flag &= ~BOUNDBOX_DIRTY;
 }
 
 BoundBox *BKE_armature_boundbox_get(Object *ob)
diff --git a/source/blender/blenkernel/intern/displist.c b/source/blender/blenkernel/intern/displist.c
index a2d555d..98cbe47 100644
--- a/source/blender/blenkernel/intern/displist.c
+++ b/source/blender/blenkernel/intern/displist.c
@@ -1861,6 +1861,8 @@ static void boundbox_displist_object(Object *ob)
 			INIT_MINMAX(min, max);
 			BKE_displist_minmax(&ob->curve_cache->disp, min, max);
 			BKE_boundbox_init_from_minmax(ob->bb, min, max);
+
+			ob->bb->flag &= ~BOUNDBOX_DIRTY;
 		}
 	}
 }
diff --git a/source/blender/blenkernel/intern/lattice.c b/source/blender/blenkernel/intern/lattice.c
index 1992eab..57c02ec 100644
--- a/source/blender/blenkernel/intern/lattice.c
+++ b/source/blender/blenkernel/intern/lattice.c
@@ -1152,8 +1152,9 @@ static void boundbox_lattice(Object *ob)
 	Lattice *lt;
 	float min[3], max[3];
 
-	if (ob->bb == NULL)
-		ob->bb = MEM_mallocN(sizeof(BoundBox), "Lattice boundbox");
+	if (ob->bb == NULL) {
+		ob->bb = MEM_callocN(sizeof(BoundBox), "Lattice boundbox");
+	}
 
 	bb = ob->bb;
 	lt = ob->data;
@@ -1161,6 +1162,8 @@ static void boundbox_lattice(Object *ob)
 	INIT_MINMAX(min, max);
 	BKE_lattice_minmax_dl(ob, lt, min, max);
 	BKE_boundbox_init_from_minmax(bb, min, max);
+
+	bb->flag &= ~BOUNDBOX_DIRTY;
 }
 
 BoundBox *BKE_lattice_boundbox_get(Object *ob)
diff --git a/source/blender/blenkernel/intern/mball.c b/source/blender/blenkernel/intern/mball.c
index 1d409e9..d7019aa 100644
--- a/source/blender/blenkernel/intern/mball.c
+++ b/source/blender/blenkernel/intern/mball.c
@@ -292,6 +292,8 @@ void BKE_mball_texspace_calc(Object *ob)
 	size[2] = (max[2] - min[2]) / 2.0f;
 #endif
 	BKE_boundbox_init_from_minmax(bb, min, max);
+
+	bb->flag &= ~BOUNDBOX_DIRTY;
 }
 
 float *BKE_mball_make_orco(Object *ob, ListBase *dispbase)




More information about the Bf-blender-cvs mailing list