diff --git a/mozilla/layout/svg/base/src/nsSVGTSpanFrame.cpp b/mozilla/layout/svg/base/src/nsSVGTSpanFrame.cpp index 694326ac32b..a7d913b19d9 100644 --- a/mozilla/layout/svg/base/src/nsSVGTSpanFrame.cpp +++ b/mozilla/layout/svg/base/src/nsSVGTSpanFrame.cpp @@ -674,14 +674,9 @@ nsSVGTSpanFrame::GetX() if (!tpElement) return nsnull; - if (!mContent->HasAttr(kNameSpaceID_None, nsSVGAtoms::x)) { - nsISVGTextContainerFrame *parent; - mParent->QueryInterface(NS_GET_IID(nsISVGTextContainerFrame), (void **)&parent); - if (parent) - return parent->GetX(); - else + if (!mContent->HasAttr(kNameSpaceID_None, nsSVGAtoms::x)) return nsnull; - } + nsCOMPtr animLengthList; tpElement->GetX(getter_AddRefs(animLengthList)); nsIDOMSVGLengthList *retval; @@ -696,14 +691,9 @@ nsSVGTSpanFrame::GetY() if (!tpElement) return nsnull; - if (!mContent->HasAttr(kNameSpaceID_None, nsSVGAtoms::y)) { - nsISVGTextContainerFrame *parent; - mParent->QueryInterface(NS_GET_IID(nsISVGTextContainerFrame), (void **)&parent); - if (parent) - return parent->GetY(); - else + if (!mContent->HasAttr(kNameSpaceID_None, nsSVGAtoms::y)) return nsnull; - } + nsCOMPtr animLengthList; tpElement->GetY(getter_AddRefs(animLengthList)); nsIDOMSVGLengthList *retval; diff --git a/mozilla/layout/svg/base/src/nsSVGTextFrame.cpp b/mozilla/layout/svg/base/src/nsSVGTextFrame.cpp index 4076ec531f5..6684aab2bac 100644 --- a/mozilla/layout/svg/base/src/nsSVGTextFrame.cpp +++ b/mozilla/layout/svg/base/src/nsSVGTextFrame.cpp @@ -1053,7 +1053,6 @@ static void GetSingleValue(nsISVGGlyphFragmentLeaf *fragment, nsIDOMSVGLengthList *list, float *val) { - *val = 0.0f; if (!list) return; @@ -1147,9 +1146,19 @@ nsSVGTextFrame::UpdateGlyphPositioning() firstFragment = node->GetFirstGlyphFragment(); + float x, y; + + { + nsCOMPtr list = GetX(); + GetSingleValue(firstFragment, list, &x); + } + { + nsCOMPtr list = GetY(); + GetSingleValue(firstFragment, list, &y); + } + // loop over chunks while (firstFragment) { - float x, y; { nsCOMPtr list = firstFragment->GetX(); GetSingleValue(firstFragment, list, &x); @@ -1173,7 +1182,7 @@ nsSVGTextFrame::UpdateGlyphPositioning() fragment->GetGlyphMetrics(getter_AddRefs(metrics)); if (!metrics) continue; - float advance, dx; + float advance, dx = 0.0f; nsCOMPtr list = fragment->GetDx(); GetSingleValue(fragment, list, &dx); metrics->GetAdvance(&advance); @@ -1197,7 +1206,7 @@ nsSVGTextFrame::UpdateGlyphPositioning() fragment->GetGlyphMetrics(getter_AddRefs(metrics)); if (!metrics) continue; - float baseline_offset, dx, dy; + float baseline_offset, dx = 0.0f, dy = 0.0f; metrics->GetBaselineOffset(baseline, &baseline_offset); { nsCOMPtr list = fragment->GetDx();