diff --git a/mozilla/layout/svg/renderer/src/cairo/nsSVGCairoGlyphGeometry.cpp b/mozilla/layout/svg/renderer/src/cairo/nsSVGCairoGlyphGeometry.cpp index a434cce6f35..6055da2d8a2 100644 --- a/mozilla/layout/svg/renderer/src/cairo/nsSVGCairoGlyphGeometry.cpp +++ b/mozilla/layout/svg/renderer/src/cairo/nsSVGCairoGlyphGeometry.cpp @@ -124,22 +124,26 @@ NS_INTERFACE_MAP_END //---------------------------------------------------------------------- // nsISVGRendererGlyphGeometry methods: -#define LOOP_CHARS(func) \ - if (!cp) { \ - func(ctx, NS_ConvertUTF16toUTF8(text).get()); \ - } else { \ - for (PRUint32 i=0; iSetupCairoFill(ctx); if (filltype == eStyleSVGPaintType_Color) { - LOOP_CHARS(cairo_show_text) + LoopCharacters(ctx, text, cp, cairo_show_text); } else if (filltype == eStyleSVGPaintType_Server) { if (fillServerType == nsSVGGeometryFrame::PAINT_TYPE_GRADIENT) { nsSVGGradientFrame *aGrad; @@ -253,7 +257,7 @@ nsSVGCairoGlyphGeometry::Render(nsSVGGlyphFrame *aSource, cairo_pattern_t *gradient = CairoGradient(ctx, aGrad, aSource); if (gradient) { cairo_set_source(ctx, gradient); - LOOP_CHARS(cairo_show_text) + LoopCharacters(ctx, text, cp, cairo_show_text); cairo_pattern_destroy(gradient); } } else if (fillServerType == nsSVGGeometryFrame::PAINT_TYPE_PATTERN) { @@ -265,10 +269,10 @@ nsSVGCairoGlyphGeometry::Render(nsSVGGlyphFrame *aSource, cairo_pattern_t *pattern = CairoPattern(canvas, aPat, aSource, getter_AddRefs(patSurface)); if (pattern) { cairo_set_source(ctx, pattern); - LOOP_CHARS(cairo_show_text) + LoopCharacters(ctx, text, cp, cairo_show_text); cairo_pattern_destroy(pattern); } else { - LOOP_CHARS(cairo_show_text) + LoopCharacters(ctx, text, cp, cairo_show_text); } } } @@ -279,7 +283,7 @@ nsSVGCairoGlyphGeometry::Render(nsSVGGlyphFrame *aSource, if (hasStroke) { aSource->SetupCairoStroke(ctx); - LOOP_CHARS(cairo_text_path) + LoopCharacters(ctx, text, cp, cairo_text_path); if (stroketype == eStyleSVGPaintType_Color) { cairo_stroke(ctx); @@ -640,7 +644,7 @@ nsSVGCairoGlyphGeometry::GetBoundingBox(nsSVGGlyphFrame *aSource, cairo_move_to(ctx, x, y); } - LOOP_CHARS(cairo_text_path) + LoopCharacters(ctx, text, cp, cairo_text_path); cairo_fill_extents(ctx, &xmin, &ymin, &xmax, &ymax);