diff options
author | Ton Roosendaal <ton@blender.org> | 2013-03-13 19:11:45 +0400 |
---|---|---|
committer | Ton Roosendaal <ton@blender.org> | 2013-03-13 19:11:45 +0400 |
commit | 1d9b80fc3b89dee028ae28e9e63c0f2b91851fbf (patch) | |
tree | 3dee8a247af20dd31ab2233987605b195961e051 /source/blender | |
parent | ad9e675ee1ebd51874a7d71200ad73dd0e2ec5a9 (diff) |
Bug fix #34620
SHIFT+T (texture space transform) crashed in editmode. Not checking NULL pointer.
Diffstat (limited to 'source/blender')
-rw-r--r-- | source/blender/editors/transform/transform.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/source/blender/editors/transform/transform.c b/source/blender/editors/transform/transform.c index d59e0e9b866..cb6ca3f7a9a 100644 --- a/source/blender/editors/transform/transform.c +++ b/source/blender/editors/transform/transform.c @@ -3583,12 +3583,15 @@ static void ElementRotation(TransInfo *t, TransData *td, float mat[3][3], short if ((t->flag & T_V3D_ALIGN) == 0) { // align mode doesn't rotate objects itself /* euler or quaternion? */ if ((td->ext->rotOrder == ROT_MODE_QUAT) || (td->flag & TD_USEQUAT)) { - mul_serie_m3(fmat, td->mtx, mat, td->smtx, NULL, NULL, NULL, NULL, NULL); - mat3_to_quat(quat, fmat); // Actual transform - - mul_qt_qtqt(td->ext->quat, quat, td->ext->iquat); - /* this function works on end result */ - protectedQuaternionBits(td->protectflag, td->ext->quat, td->ext->iquat); + /* can be called for texture space translate for example, then opt out */ + if (td->ext->quat) { + mul_serie_m3(fmat, td->mtx, mat, td->smtx, NULL, NULL, NULL, NULL, NULL); + mat3_to_quat(quat, fmat); // Actual transform + + mul_qt_qtqt(td->ext->quat, quat, td->ext->iquat); + /* this function works on end result */ + protectedQuaternionBits(td->protectflag, td->ext->quat, td->ext->iquat); + } } else if (td->ext->rotOrder == ROT_MODE_AXISANGLE) { /* calculate effect based on quats */ |