float viewboxWidth, viewboxHeight, viewboxX, viewboxY;
float viewboxX, viewboxY, viewboxWidth, viewboxHeight;
nsSVGSVGElement::GetViewboxToViewportTransform(nsIDOMSVGMatrix **_retval){  if (!mViewBoxToViewportTransform) {    float viewportWidth, viewportHeight;    mViewport->GetWidth(&viewportWidth);    mViewport->GetHeight(&viewportHeight);        float viewboxWidth, viewboxHeight, viewboxX, viewboxY;    {      nsCOMPtr<nsIDOMSVGRect> vb;      mViewBox->GetAnimVal(getter_AddRefs(vb));      NS_ASSERTION(vb, "could not get viewbox");      vb->GetWidth(&viewboxWidth);      vb->GetHeight(&viewboxHeight);      vb->GetX(&viewboxX);      vb->GetY(&viewboxY);    }    if (viewboxWidth==0.0f || viewboxHeight==0.0f) {      NS_ERROR("XXX. We shouldn't get here. Viewbox width/height is set to 0. Need to disable display of element as per specs.");      viewboxWidth = 1.0f;      viewboxHeight = 1.0f;    }        // case with preserveAspectRatio=none:    float a, e, d, f;        a = viewportWidth/viewboxWidth;    e = -a*viewboxX;        d = viewportHeight/viewboxHeight;    f = -d*viewboxY;    #ifdef DEBUG    printf("SVG Viewport=(0?,0?,%f,%f)\n", viewportWidth, viewportHeight);    printf("SVG Viewbox=(%f,%f,%f,%f)\n", viewboxX, viewboxY, viewboxWidth, viewboxHeight);    printf("SVG Viewbox->Viewport xform [a c e] = [%f,   0, %f]\n", a, e);    printf("                            [b d f] = [   0,  %f, %f]\n", d, f);#endif        nsSVGMatrix::Create(getter_AddRefs(mViewBoxToViewportTransform),                                       a, 0, 0, d, e, f);  }  *_retval = mViewBoxToViewportTransform;  NS_IF_ADDREF(*_retval);  return NS_OK;}