if (!renderer) return NS_ERROR_FAILURE;
nsSVGGlyphFrame::Init(nsPresContext*  aPresContext,                      nsIContent*      aContent,                      nsIFrame*        aParent,                      nsStyleContext*  aContext,                      nsIFrame*        aPrevInFlow){//  rv = nsSVGGlyphFrameBase::Init(aPresContext, aContent, aParent,//                                 aContext, aPrevInFlow);  mContent = aContent;  NS_IF_ADDREF(mContent);  mParent = aParent;  // construct our glyphmetrics & glyphgeometry objects:  nsISVGOuterSVGFrame* outerSVGFrame = GetOuterSVGFrame();  if (!outerSVGFrame) {    NS_ERROR("No outerSVGFrame");    return NS_ERROR_FAILURE;  }  nsCOMPtr<nsISVGRenderer> renderer;  outerSVGFrame->GetRenderer(getter_AddRefs(renderer));  renderer->CreateGlyphMetrics(this, getter_AddRefs(mMetrics));  if (!mMetrics) return NS_ERROR_FAILURE;    renderer->CreateGlyphGeometry(this, getter_AddRefs(mGeometry));  if (!mGeometry) return NS_ERROR_FAILURE;      SetStyleContext(aPresContext, aContext);      return NS_OK;}