diff options
Diffstat (limited to 'gfx/2d')
-rw-r--r-- | gfx/2d/DrawTarget.cpp | 5 | ||||
-rw-r--r-- | gfx/2d/ScaledFontBase.cpp | 16 |
2 files changed, 15 insertions, 6 deletions
diff --git a/gfx/2d/DrawTarget.cpp b/gfx/2d/DrawTarget.cpp index eb7b23f3be..7f95dc6661 100644 --- a/gfx/2d/DrawTarget.cpp +++ b/gfx/2d/DrawTarget.cpp @@ -183,8 +183,9 @@ void DrawTarget::StrokeGlyphs(ScaledFont* aFont, const GlyphBuffer& aBuffer, const Pattern& aPattern, const StrokeOptions& aStrokeOptions, const DrawOptions& aOptions) { - RefPtr<Path> path = aFont->GetPathForGlyphs(aBuffer, this); - Stroke(path, aPattern, aStrokeOptions, aOptions); + if (RefPtr<Path> path = aFont->GetPathForGlyphs(aBuffer, this)) { + Stroke(path, aPattern, aStrokeOptions, aOptions); + } } already_AddRefed<SourceSurface> DrawTarget::IntoLuminanceSource( diff --git a/gfx/2d/ScaledFontBase.cpp b/gfx/2d/ScaledFontBase.cpp index d62dcb0127..cd52df3ccd 100644 --- a/gfx/2d/ScaledFontBase.cpp +++ b/gfx/2d/ScaledFontBase.cpp @@ -127,7 +127,11 @@ already_AddRefed<Path> ScaledFontBase::GetPathForGlyphs( } #ifdef USE_CAIRO if (aTarget->GetBackendType() == BackendType::CAIRO) { - MOZ_ASSERT(mScaledFont); + auto* cairoScaledFont = GetCairoScaledFont(); + if (!cairoScaledFont) { + MOZ_ASSERT_UNREACHABLE("Invalid scaled font"); + return nullptr; + } DrawTarget* dt = const_cast<DrawTarget*>(aTarget); cairo_t* ctx = static_cast<cairo_t*>( @@ -141,7 +145,7 @@ already_AddRefed<Path> ScaledFontBase::GetPathForGlyphs( cairo_set_matrix(ctx, &mat); } - cairo_set_scaled_font(ctx, mScaledFont); + cairo_set_scaled_font(ctx, cairoScaledFont); // Convert our GlyphBuffer into an array of Cairo glyphs. std::vector<cairo_glyph_t> glyphs(aBuffer.mNumGlyphs); @@ -181,7 +185,11 @@ void ScaledFontBase::CopyGlyphsToBuilder(const GlyphBuffer& aBuffer, } #ifdef USE_CAIRO if (backendType == BackendType::CAIRO) { - MOZ_ASSERT(mScaledFont); + auto* cairoScaledFont = GetCairoScaledFont(); + if (!cairoScaledFont) { + MOZ_ASSERT_UNREACHABLE("Invalid scaled font"); + return; + } PathBuilderCairo* builder = static_cast<PathBuilderCairo*>(aBuilder); cairo_t* ctx = cairo_create(DrawTargetCairo::GetDummySurface()); @@ -200,7 +208,7 @@ void ScaledFontBase::CopyGlyphsToBuilder(const GlyphBuffer& aBuffer, glyphs[i].y = aBuffer.mGlyphs[i].mPosition.y; } - cairo_set_scaled_font(ctx, mScaledFont); + cairo_set_scaled_font(ctx, cairoScaledFont); cairo_glyph_path(ctx, &glyphs[0], aBuffer.mNumGlyphs); RefPtr<PathCairo> cairoPath = new PathCairo(ctx); |