Bug 327756 - ASSERTION: can't find nsISVGValue interface on mMatrix. r=roc

This commit is contained in:
Robert Longson 2009-06-17 22:39:59 +01:00
parent 69944ad434
commit b5cd3e8fef
3 changed files with 11 additions and 4 deletions

View File

@ -81,4 +81,13 @@ NS_NewSVGMatrix(nsIDOMSVGMatrix** result,
already_AddRefed<nsIDOMSVGMatrix>
NS_NewSVGMatrix(const gfxMatrix &aMatrix);
#define NS_ENSURE_NATIVE_MATRIX(obj, retval) \
{ \
nsresult rv; \
if (retval) \
*retval = nsnull; \
nsCOMPtr<nsISVGValue> val = do_QueryInterface(obj, &rv); \
NS_ENSURE_SUCCESS(rv, NS_ERROR_DOM_SVG_WRONG_TYPE_ERR); \
}
#endif //__NS_SVGMATRIX_H__

View File

@ -697,8 +697,7 @@ NS_IMETHODIMP
nsSVGSVGElement::CreateSVGTransformFromMatrix(nsIDOMSVGMatrix *matrix,
nsIDOMSVGTransform **_retval)
{
if (!matrix)
return NS_ERROR_DOM_SVG_WRONG_TYPE_ERR;
NS_ENSURE_NATIVE_MATRIX(matrix, _retval);
nsresult rv = NS_NewSVGTransform(_retval);
if (NS_FAILED(rv))

View File

@ -367,8 +367,7 @@ NS_IMETHODIMP
nsSVGTransformList::CreateSVGTransformFromMatrix(nsIDOMSVGMatrix *matrix,
nsIDOMSVGTransform **_retval)
{
if (!matrix)
return NS_ERROR_DOM_SVG_WRONG_TYPE_ERR;
NS_ENSURE_NATIVE_MATRIX(matrix, _retval);
nsresult rv = NS_NewSVGTransform(_retval);
if (NS_FAILED(rv))