fix transform code using a node space as an image space, accessing unallocated memory.

also remove bullet patch which has now been applied.
This commit is contained in:
Campbell Barton
2011-05-02 05:24:59 +00:00
parent 07ee0dcc74
commit 474fe33301
2 changed files with 9 additions and 20 deletions

View File

@@ -1,17 +0,0 @@
Index: src/BulletCollision/CollisionShapes/btScaledBvhTriangleMeshShape.cpp
===================================================================
--- src/BulletCollision/CollisionShapes/btScaledBvhTriangleMeshShape.cpp (revision 34336)
+++ src/BulletCollision/CollisionShapes/btScaledBvhTriangleMeshShape.cpp (working copy)
@@ -61,10 +61,12 @@
scaledAabbMin[0] = m_localScaling.getX() >= 0. ? aabbMin[0] * invLocalScaling[0] : aabbMax[0] * invLocalScaling[0];
scaledAabbMin[1] = m_localScaling.getY() >= 0. ? aabbMin[1] * invLocalScaling[1] : aabbMax[1] * invLocalScaling[1];
scaledAabbMin[2] = m_localScaling.getZ() >= 0. ? aabbMin[2] * invLocalScaling[2] : aabbMax[2] * invLocalScaling[2];
+ scaledAabbMin[3] = 0.0; /* otherwise un-initialized stack memory: uninitialized_stack_vec.patch, blender patch */
scaledAabbMax[0] = m_localScaling.getX() <= 0. ? aabbMin[0] * invLocalScaling[0] : aabbMax[0] * invLocalScaling[0];
scaledAabbMax[1] = m_localScaling.getY() <= 0. ? aabbMin[1] * invLocalScaling[1] : aabbMax[1] * invLocalScaling[1];
scaledAabbMax[2] = m_localScaling.getZ() <= 0. ? aabbMin[2] * invLocalScaling[2] : aabbMax[2] * invLocalScaling[2];
+ scaledAabbMax[3] = 0.0; /* otherwise un-initialized stack memory: uninitialized_stack_vec.patch, blender patch */
m_bvhTriMeshShape->processAllTriangles(&scaledCallback,scaledAabbMin,scaledAabbMax);

View File

@@ -1018,12 +1018,18 @@ int initTransInfo (bContext *C, TransInfo *t, wmOperator *op, wmEvent *event)
}
}
}
else if(t->spacetype==SPACE_IMAGE || t->spacetype==SPACE_NODE)
else if(t->spacetype==SPACE_IMAGE)
{
SpaceImage *sima = sa->spacedata.first;
// XXX for now, get View2D from the active region
// XXX for now, get View2D from the active region
t->view = &ar->v2d;
t->around = (sima ? sima->around : 0);
t->around = sima->around;
}
else if(t->spacetype==SPACE_NODE)
{
// XXX for now, get View2D from the active region
t->view = &ar->v2d;
t->around = V3D_CENTER;
}
else if(t->spacetype==SPACE_IPO)
{