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;