diff --git a/modules/juce_graphics/native/juce_CoreGraphicsContext_mac.mm b/modules/juce_graphics/native/juce_CoreGraphicsContext_mac.mm index a1a66d3c1f..d18578ad9b 100644 --- a/modules/juce_graphics/native/juce_CoreGraphicsContext_mac.mm +++ b/modules/juce_graphics/native/juce_CoreGraphicsContext_mac.mm @@ -838,21 +838,20 @@ void CoreGraphicsContext::drawGlyphs (Span glyphs, flip(); applyTransform (AffineTransform::scale (1.0f, -1.0f).followedBy (transform)); - std::vector pos (glyphs.size()); + CopyableHeapBlock pos (glyphs.size()); std::transform (positions.begin(), positions.end(), pos.begin(), [scale] (const auto& p) { return CGPointMake (p.x / scale, -p.y); }); CTFontDrawGlyphs (state->fontRef.get(), glyphs.data(), pos.data(), glyphs.size(), context.get()); + return; } - else + + for (const auto [index, glyph] : enumerate (glyphs, size_t{})) { - for (const auto [index, glyph] : enumerate (glyphs, size_t{})) - { - Path p; - auto& f = state->font; - f.getTypefacePtr()->getOutlineForGlyph (f.getMetricsKind(), glyph, p); - const auto scale = f.getHeight(); - fillPath (p, AffineTransform::scale (scale * f.getHorizontalScale(), scale).translated (positions[index]).followedBy (transform)); - } + Path p; + auto& f = state->font; + f.getTypefacePtr()->getOutlineForGlyph (f.getMetricsKind(), glyph, p); + const auto scale = f.getHeight(); + fillPath (p, AffineTransform::scale (scale * f.getHorizontalScale(), scale).translated (positions[index]).followedBy (transform)); } }