if (checkURITarget(nsSVGAtoms::r)) {  nsISVGGradient *aNextGrad; if (nsSVGGradientFrame::GetNextGradient(&aNextGrad, nsISVGGradient::SVG_RADIAL_GRADIENT) == NS_OK) { nsCOMPtr<nsISVGRadialGradient> aRNgrad = do_QueryInterface(aNextGrad); aRNgrad->GetR(aR); return NS_OK; }   }  nsCOMPtr<nsIDOMSVGAnimatedLength> aLen; aRgrad->GetR(getter_AddRefs(aLen)); nsCOMPtr<nsIDOMSVGLength> sLen; aLen->GetAnimVal(getter_AddRefs(sLen)); sLen->GetValue(aR);
mR->GetValue(aR);
nsSVGRadialGradientFrame::GetR(float *aR){  nsCOMPtr<nsIDOMSVGRadialGradientElement> aRgrad = do_QueryInterface(mContent);  NS_ASSERTION(aRgrad, "Wrong content element (not radial gradient)");  if (aRgrad == nsnull) {    return NS_ERROR_FAILURE;  }  // See if we need to get the value from another gradient  if (checkURITarget(nsSVGAtoms::r)) {    // Yes, get it from the target    nsISVGGradient *aNextGrad;    if (nsSVGGradientFrame::GetNextGradient(&aNextGrad, nsISVGGradient::SVG_RADIAL_GRADIENT) == NS_OK) {      nsCOMPtr<nsISVGRadialGradient> aRNgrad = do_QueryInterface(aNextGrad);      aRNgrad->GetR(aR);      return NS_OK;    }    // There are no gradients in the list with our type -- fall through    // and return our default value  }  // No, return the values  nsCOMPtr<nsIDOMSVGAnimatedLength> aLen;  aRgrad->GetR(getter_AddRefs(aLen));  nsCOMPtr<nsIDOMSVGLength> sLen;  aLen->GetAnimVal(getter_AddRefs(sLen));  sLen->GetValue(aR);  return NS_OK;}