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:
authorCampbell Barton <ideasman42@gmail.com>2016-03-04 13:50:54 +0300
committerSergey Sharybin <sergey.vfx@gmail.com>2016-03-04 19:12:00 +0300
commit15ac4b4f9b7223251ecb89806a54f71f7d57afe3 (patch)
tree7945d170fbb1708f393f20c952252fd32eba118c
parentce4a8210b395f05f4fdb6162c5e67d66a2dd850a (diff)
Fix uninitialized memory use lattice-boundbox
Many other places weren't clearing boundbox dirty flag after calculation.
-rw-r--r--source/blender/blenkernel/intern/DerivedMesh.c2
-rw-r--r--source/blender/blenkernel/intern/armature.c5
-rw-r--r--source/blender/blenkernel/intern/displist.c2
-rw-r--r--source/blender/blenkernel/intern/lattice.c7
-rw-r--r--source/blender/blenkernel/intern/mball.c2
5 files changed, 14 insertions, 4 deletions
diff --git a/source/blender/blenkernel/intern/DerivedMesh.c b/source/blender/blenkernel/intern/DerivedMesh.c
index 423e8972657..fb98cc1b485 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 74fffdd664f..54fe98940aa 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 a2d555d0918..98cbe47c7f9 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 1992eabafec..57c02ec6329 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 1d409e9ffe8..d7019aa8458 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)