Kaydet (Commit) e0ad66c8 authored tarafından Caolán McNamara's avatar Caolán McNamara

drop unnecessary mpFontInstance use path

the only call to the ImplFontMetricData ctor is from the ctor of
LogicalFontInstance. LogicalFontInstance is only created via
PhysicalFontFace::CreateFontInstance which is only
from ImplFontCache::GetFontInstance.

The typical call to ImplFontCache::GetFontInstance(..., FontSelectPattern&)
is from the other GetFontInstance which create a new FontSelectPatternAttributes
so rFontSelData.mpFontInstance won't get set in that case

The other case is from the edge-case GetGlyphFallbackFont where mpFontInstance
will be set. I'm reasonably confident that we don't need actually have this
mpFontInstance use, but if it turns out we do then it could be restored to
GetGlyphFallbackFont after it ctors the its LogicalFontInstance return

Change-Id: I77404876b55bceced951d78cb52bc9cb829fc904
Reviewed-on: https://gerrit.libreoffice.org/59371
Tested-by: Jenkins
Reviewed-by: 's avatarCaolán McNamara <caolanm@redhat.com>
Tested-by: 's avatarCaolán McNamara <caolanm@redhat.com>
üst 195c1cfb
...@@ -31,12 +31,12 @@ class ImplFontMetricData; ...@@ -31,12 +31,12 @@ class ImplFontMetricData;
typedef tools::SvRef<ImplFontMetricData> ImplFontMetricDataRef; typedef tools::SvRef<ImplFontMetricData> ImplFontMetricDataRef;
class OutputDevice; class OutputDevice;
class FontSelectPattern; class FontSelectPatternAttributes;
class VCL_DLLPUBLIC ImplFontMetricData : public FontAttributes, public SvRefBase class VCL_DLLPUBLIC ImplFontMetricData : public FontAttributes, public SvRefBase
{ {
public: public:
explicit ImplFontMetricData( const FontSelectPattern& ); explicit ImplFontMetricData( const FontSelectPatternAttributes& );
// font instance attributes from the font request // font instance attributes from the font request
long GetWidth() const { return mnWidth; } long GetWidth() const { return mnWidth; }
......
...@@ -191,7 +191,7 @@ bool ImplFontMetric::operator==( const ImplFontMetric& r ) const ...@@ -191,7 +191,7 @@ bool ImplFontMetric::operator==( const ImplFontMetric& r ) const
return true; return true;
} }
ImplFontMetricData::ImplFontMetricData( const FontSelectPattern& rFontSelData ) ImplFontMetricData::ImplFontMetricData( const FontSelectPatternAttributes& rFontSelData )
: FontAttributes( rFontSelData ) : FontAttributes( rFontSelData )
, mnHeight ( rFontSelData.mnHeight ) , mnHeight ( rFontSelData.mnHeight )
, mnWidth ( rFontSelData.mnWidth ) , mnWidth ( rFontSelData.mnWidth )
...@@ -231,20 +231,11 @@ ImplFontMetricData::ImplFontMetricData( const FontSelectPattern& rFontSelData ) ...@@ -231,20 +231,11 @@ ImplFontMetricData::ImplFontMetricData( const FontSelectPattern& rFontSelData )
, mnDStrikeoutOffset2( 0 ) , mnDStrikeoutOffset2( 0 )
{ {
// initialize the used font name // initialize the used font name
if (rFontSelData.mpFontInstance) sal_Int32 nTokenPos = 0;
{ SetFamilyName( GetNextFontToken( rFontSelData.GetFamilyName(), nTokenPos ) );
SetFamilyName(rFontSelData.mpFontInstance->GetFontFace()->GetFamilyName()); SetStyleName( rFontSelData.GetStyleName() );
SetStyleName(rFontSelData.mpFontInstance->GetFontFace()->GetStyleName());
}
else
{
sal_Int32 nTokenPos = 0;
SetFamilyName( GetNextFontToken( rFontSelData.GetFamilyName(), nTokenPos ) );
SetStyleName( rFontSelData.GetStyleName() );
}
} }
void ImplFontMetricData::ImplInitTextLineSize( const OutputDevice* pDev ) void ImplFontMetricData::ImplInitTextLineSize( const OutputDevice* pDev )
{ {
long nDescent = mnDescent; long nDescent = mnDescent;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment