qt5: hold LogicalFontInstance with rtl::Reference
Build fix after c4c56de1b0e62ec866b519b2b24c5e805f0a86d3.
Change-Id: I49303528ccbe49894a0fbae3c24d3f3d08c016eb
Reviewed-on: https://gerrit.libreoffice.org/55547
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
diff --git a/vcl/inc/qt5/Qt5FontFace.hxx b/vcl/inc/qt5/Qt5FontFace.hxx
index 4cc2101..0e1a359 100644
--- a/vcl/inc/qt5/Qt5FontFace.hxx
+++ b/vcl/inc/qt5/Qt5FontFace.hxx
@@ -47,7 +47,8 @@ public:
bool GetFontCapabilities(vcl::FontCapabilities& rFontCapabilities) const;
bool HasChar(sal_uInt32 cChar) const;
LogicalFontInstance* CreateFontInstance(const FontSelectPattern& rFSD) const override;
rtl::Reference<LogicalFontInstance>
CreateFontInstance(const FontSelectPattern& rFSD) const override;
protected:
Qt5FontFace(const Qt5FontFace&);
diff --git a/vcl/inc/qt5/Qt5Graphics.hxx b/vcl/inc/qt5/Qt5Graphics.hxx
index af21ee4..40284db 100644
--- a/vcl/inc/qt5/Qt5Graphics.hxx
+++ b/vcl/inc/qt5/Qt5Graphics.hxx
@@ -48,7 +48,7 @@ class Qt5Graphics : public SalGraphics
QPainter::CompositionMode m_eCompositionMode;
PhysicalFontCollection* m_pFontCollection;
Qt5Font* m_pTextStyle[MAX_FALLBACK];
rtl::Reference<Qt5Font> m_pTextStyle[MAX_FALLBACK];
Color m_aTextColor;
Qt5Graphics(Qt5Frame* pFrame, QImage* pQImage);
diff --git a/vcl/qt5/Qt5Font.hxx b/vcl/qt5/Qt5Font.hxx
index 4e37f7d..81bd723 100644
--- a/vcl/qt5/Qt5Font.hxx
+++ b/vcl/qt5/Qt5Font.hxx
@@ -27,7 +27,8 @@
class Qt5Font final : public QFont, public LogicalFontInstance
{
friend LogicalFontInstance* Qt5FontFace::CreateFontInstance(const FontSelectPattern&) const;
friend rtl::Reference<LogicalFontInstance>
Qt5FontFace::CreateFontInstance(const FontSelectPattern&) const;
virtual hb_font_t* ImplInitHbFont() override;
diff --git a/vcl/qt5/Qt5FontFace.cxx b/vcl/qt5/Qt5FontFace.cxx
index bd3994a..d0efb48 100644
--- a/vcl/qt5/Qt5FontFace.cxx
+++ b/vcl/qt5/Qt5FontFace.cxx
@@ -62,7 +62,8 @@ Qt5FontFace::~Qt5FontFace() {}
sal_IntPtr Qt5FontFace::GetFontId() const { return reinterpret_cast<sal_IntPtr>(&m_aFontId); }
LogicalFontInstance* Qt5FontFace::CreateFontInstance(const FontSelectPattern& rFSD) const
rtl::Reference<LogicalFontInstance>
Qt5FontFace::CreateFontInstance(const FontSelectPattern& rFSD) const
{
return new Qt5Font(*this, rFSD);
}
diff --git a/vcl/qt5/Qt5Graphics.cxx b/vcl/qt5/Qt5Graphics.cxx
index c7ca69a..7257b80 100644
--- a/vcl/qt5/Qt5Graphics.cxx
+++ b/vcl/qt5/Qt5Graphics.cxx
@@ -47,7 +47,7 @@ Qt5Graphics::~Qt5Graphics()
{
if (!m_pTextStyle[i])
break;
m_pTextStyle[i]->Release();
m_pTextStyle[i].clear();
}
}
diff --git a/vcl/qt5/Qt5Graphics_Text.cxx b/vcl/qt5/Qt5Graphics_Text.cxx
index cf244d3..cb7bef8 100644
--- a/vcl/qt5/Qt5Graphics_Text.cxx
+++ b/vcl/qt5/Qt5Graphics_Text.cxx
@@ -41,8 +41,7 @@ void Qt5Graphics::SetFont(const FontSelectPattern* pReqFont, int nFallbackLevel)
{
if (!m_pTextStyle[i])
break;
m_pTextStyle[i]->Release();
m_pTextStyle[i] = nullptr;
m_pTextStyle[i].clear();
}
if (!pReqFont)
@@ -51,8 +50,7 @@ void Qt5Graphics::SetFont(const FontSelectPattern* pReqFont, int nFallbackLevel)
if (!pReqFont->mpFontInstance)
return;
m_pTextStyle[nFallbackLevel] = static_cast<Qt5Font*>(pReqFont->mpFontInstance);
m_pTextStyle[nFallbackLevel]->Acquire();
m_pTextStyle[nFallbackLevel] = static_cast<Qt5Font*>(pReqFont->mpFontInstance.get());
}
void Qt5Graphics::GetFontMetric(ImplFontMetricDataRef& rFMD, int nFallbackLevel)
@@ -137,7 +135,7 @@ bool Qt5Graphics::GetGlyphBoundRect(const GlyphItem& rGlyph, tools::Rectangle& r
if (nLevel >= MAX_FALLBACK)
return false;
Qt5Font* pFont = m_pTextStyle[nLevel];
Qt5Font* pFont = m_pTextStyle[nLevel].get();
if (!pFont)
return false;