diff options
author | Noel Grandin <noel.grandin@collabora.co.uk> | 2021-12-07 14:37:56 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2021-12-07 17:46:23 +0100 |
commit | 5de20e45e48f7654d288f26f768fabddad133bfd (patch) | |
tree | cce410ce740ae0ca760855a2ddc2ca09d623e633 /vcl | |
parent | 7e8e57a456f2b946631eecefd163cb4ff3a3d603 (diff) |
improve loplugin:cow_wrapper
to find my previous attempt at this, which only obscured the problem
<noelgrandin> I'm such an idiot
<noelgrandin> I changed a whole bunch of code to avoid calling const
methods on a non-const object
<noelgrandin> from p->foo() to std::as_const(*p).foo()
<noelgrandin> can you spot the mistake?
<bubli> Is this a job interview question? :D
<vmiklos> noelgrandin: you did the opposite, now you always call const
member functions, while you wanted to always call non-const member
functions?
<noelgrandin> more like a "why didn't the smart people on this channel
tell me I was an idiot" :-)
<noelgrandin> in this case, we have o3tl::cow_wrapper, which overrides
operator* and operator->
<vmiklos> ah, and by the time you would add/remove the const,
cow_wrapper already did the expensive task of copying based on
const/non-const
<noelgrandin> exactly
<thorsten> heh
Change-Id: I5366e6a87c414b862668b61e6adfbccfdd9d3b04
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126473
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'vcl')
-rw-r--r-- | vcl/source/font/font.cxx | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/vcl/source/font/font.cxx b/vcl/source/font/font.cxx index ef35c744ee0a..789273aaf40b 100644 --- a/vcl/source/font/font.cxx +++ b/vcl/source/font/font.cxx @@ -184,7 +184,7 @@ void Font::SetSymbolFlag( bool bSymbol ) } else { - if ( std::as_const(*mpImplFont).GetCharSet() == RTL_TEXTENCODING_SYMBOL ) + if ( std::as_const(mpImplFont)->GetCharSet() == RTL_TEXTENCODING_SYMBOL ) mpImplFont->SetCharSet( RTL_TEXTENCODING_DONTKNOW ); } } @@ -851,9 +851,9 @@ const OUString& Font::GetFamilyName() const { return mpImplFont->GetFamilyName() const OUString& Font::GetStyleName() const { return mpImplFont->maStyleName; } const Size& Font::GetFontSize() const { return mpImplFont->GetFontSize(); } -void Font::SetFontHeight( tools::Long nHeight ) { SetFontSize( Size( std::as_const(*mpImplFont).GetFontSize().Width(), nHeight ) ); } +void Font::SetFontHeight( tools::Long nHeight ) { SetFontSize( Size( std::as_const(mpImplFont)->GetFontSize().Width(), nHeight ) ); } tools::Long Font::GetFontHeight() const { return mpImplFont->GetFontSize().Height(); } -void Font::SetAverageFontWidth( tools::Long nWidth ) { SetFontSize( Size( nWidth, std::as_const(*mpImplFont).GetFontSize().Height() ) ); } +void Font::SetAverageFontWidth( tools::Long nWidth ) { SetFontSize( Size( nWidth, std::as_const(mpImplFont)->GetFontSize().Height() ) ); } tools::Long Font::GetAverageFontWidth() const { return mpImplFont->GetFontSize().Width(); } rtl_TextEncoding Font::GetCharSet() const { return mpImplFont->GetCharSet(); } |