vcl/headless/CairoCommon.cxx | 15 +++++++++++++++ 1 file changed, 15 insertions(+)
New commits: commit ba63c4199d19b87d53bb167397180fc2d8686ff5 Author: Caolán McNamara <[email protected]> AuthorDate: Thu May 11 09:05:48 2023 +0100 Commit: Caolán McNamara <[email protected]> CommitDate: Thu May 11 12:56:35 2023 +0200 ofz#58818 Direct-leak Change-Id: I8974b998397aa521c9ee61651b5ce45d4189b303 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/151662 Tested-by: Jenkins Reviewed-by: Caolán McNamara <[email protected]> diff --git a/vcl/headless/CairoCommon.cxx b/vcl/headless/CairoCommon.cxx index 2b732f627f30..d9c77afa1e56 100644 --- a/vcl/headless/CairoCommon.cxx +++ b/vcl/headless/CairoCommon.cxx @@ -879,6 +879,13 @@ bool CairoCommon::drawPolyPolygon(const basegfx::B2DHomMatrix& rObjectToDevice, return true; cairo_t* cr = getCairoContext(true, bAntiAlias); + if (cairo_status(cr) != CAIRO_STATUS_SUCCESS) + { + SAL_WARN("vcl.gdi", + "cannot render to surface: " << cairo_status_to_string(cairo_status(cr))); + releaseCairoContext(cr, true, basegfx::B2DRange()); + return true; + } clipRegion(cr); // Set full (Object-to-Device) transformation - if used @@ -1648,6 +1655,14 @@ bool CairoCommon::drawAlphaBitmap(const SalTwoRect& rTR, const SalBitmap& rSourc } cairo_t* cr = getCairoContext(false, bAntiAlias); + if (cairo_status(cr) != CAIRO_STATUS_SUCCESS) + { + SAL_WARN("vcl.gdi", + "cannot render to surface: " << cairo_status_to_string(cairo_status(cr))); + releaseCairoContext(cr, false, basegfx::B2DRange()); + return true; + } + clipRegion(cr); cairo_rectangle(cr, rTR.mnDestX, rTR.mnDestY, rTR.mnDestWidth, rTR.mnDestHeight);
