diff options
author | Campbell Barton <ideasman42@gmail.com> | 2016-03-04 13:50:54 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2016-03-04 19:12:00 +0300 |
commit | 15ac4b4f9b7223251ecb89806a54f71f7d57afe3 (patch) | |
tree | 7945d170fbb1708f393f20c952252fd32eba118c | |
parent | ce4a8210b395f05f4fdb6162c5e67d66a2dd850a (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.c | 2 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/armature.c | 5 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/displist.c | 2 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/lattice.c | 7 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/mball.c | 2 |
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) |