SHIFT+T (texture space transform) crashed in editmode. Not checking NULL pointer.
This commit is contained in:
Ton Roosendaal 2013-03-13 15:11:45 +00:00
parent ad9e675ee1
commit 1d9b80fc3b

@ -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 if ((t->flag & T_V3D_ALIGN) == 0) { // align mode doesn't rotate objects itself
/* euler or quaternion? */ /* euler or quaternion? */
if ((td->ext->rotOrder == ROT_MODE_QUAT) || (td->flag & TD_USEQUAT)) { 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); /* can be called for texture space translate for example, then opt out */
mat3_to_quat(quat, fmat); // Actual transform 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); mul_qt_qtqt(td->ext->quat, quat, td->ext->iquat);
/* this function works on end result */ /* this function works on end result */
protectedQuaternionBits(td->protectflag, td->ext->quat, td->ext->iquat); protectedQuaternionBits(td->protectflag, td->ext->quat, td->ext->iquat);
}
} }
else if (td->ext->rotOrder == ROT_MODE_AXISANGLE) { else if (td->ext->rotOrder == ROT_MODE_AXISANGLE) {
/* calculate effect based on quats */ /* calculate effect based on quats */