mirror of
https://github.com/reactos/reactos.git
synced 2025-02-20 15:35:04 +00:00
[WIN32K]
- Make XFORMOBJ_iSetXform fail, when the XFORM is invalid (eM11 or eM22 are 0) - Handle error in GreModifyWorldTransform svn path=/trunk/; revision=56422
This commit is contained in:
parent
ca47627718
commit
0e6b454957
2 changed files with 10 additions and 7 deletions
|
@ -461,20 +461,23 @@ GreModifyWorldTransform(
|
|||
case MWT_LEFTMULTIPLY:
|
||||
XFORMOBJ_vInit(&xoDC, &pdc->pdcattr->mxWorldToPage);
|
||||
XFORMOBJ_vInit(&xoSrc, &mxSrc);
|
||||
XFORMOBJ_iSetXform(&xoSrc, pxform);
|
||||
if (XFORMOBJ_iSetXform(&xoSrc, pxform) == DDI_ERROR)
|
||||
return FALSE;
|
||||
XFORMOBJ_iCombine(&xoDC, &xoSrc, &xoDC);
|
||||
break;
|
||||
|
||||
case MWT_RIGHTMULTIPLY:
|
||||
XFORMOBJ_vInit(&xoDC, &pdc->pdcattr->mxWorldToPage);
|
||||
XFORMOBJ_vInit(&xoSrc, &mxSrc);
|
||||
XFORMOBJ_iSetXform(&xoSrc, pxform);
|
||||
if (XFORMOBJ_iSetXform(&xoSrc, pxform) == DDI_ERROR)
|
||||
return FALSE;
|
||||
XFORMOBJ_iCombine(&xoDC, &xoDC, &xoSrc);
|
||||
break;
|
||||
|
||||
case MWT_MAX+1: // Must be MWT_SET????
|
||||
XFORMOBJ_vInit(&xoDC, &pdc->pdcattr->mxWorldToPage);
|
||||
XFORMOBJ_iSetXform(&xoDC, pxform);
|
||||
if (XFORMOBJ_iSetXform(&xoDC, pxform) == DDI_ERROR)
|
||||
return FALSE;
|
||||
break;
|
||||
|
||||
default:
|
||||
|
|
|
@ -160,10 +160,10 @@ XFORMOBJ_iSetXform(
|
|||
PMATRIX pmx = XFORMOBJ_pmx(pxo);
|
||||
|
||||
/* Check parameters */
|
||||
if (!pxo || !pxform)
|
||||
{
|
||||
return DDI_ERROR;
|
||||
}
|
||||
if (!pxo || !pxform) return DDI_ERROR;
|
||||
|
||||
/* Check if the xform is valid */
|
||||
if ((pxform->eM11 == 0) || (pxform->eM22 == 0)) return DDI_ERROR;
|
||||
|
||||
/* Copy members */
|
||||
FLOATOBJ_SetFloat(&pmx->efM11, pxform->eM11);
|
||||
|
|
Loading…
Reference in a new issue