[Libreoffice-commits] core.git: editeng/source
Mike Kaganski (via logerrit)
logerrit at kemper.freedesktop.org
Wed Jul 21 09:07:11 UTC 2021
editeng/source/editeng/editobj.cxx | 166 ++++++++++++++++++------------------
editeng/source/editeng/editobj2.hxx | 43 ++++-----
2 files changed, 105 insertions(+), 104 deletions(-)
New commits:
commit 42de48d099d6cb5cf8507385d50328f20034c08e
Author: Mike Kaganski <mike.kaganski at collabora.com>
AuthorDate: Wed Jul 21 09:07:32 2021 +0300
Commit: Mike Kaganski <mike.kaganski at collabora.com>
CommitDate: Wed Jul 21 11:06:35 2021 +0200
Prefix members of EditTextObjectImpl
... and re-arrange them a bit to optimize memory layout
Change-Id: Ia543a68b446b9d9e49828112f3aa0054607cb2a9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119296
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski at collabora.com>
diff --git a/editeng/source/editeng/editobj.cxx b/editeng/source/editeng/editobj.cxx
index b04f05313b3d..2179b27af7fc 100644
--- a/editeng/source/editeng/editobj.cxx
+++ b/editeng/source/editeng/editobj.cxx
@@ -235,7 +235,7 @@ void EditTextObjectImpl::dumpAsXml(xmlTextWriterPtr pWriter) const
sal_Int32 nCount = GetParagraphCount();
for (sal_Int32 i = 0; i < nCount; ++i)
{
- aContents[i]->dumpAsXml(pWriter);
+ maContents[i]->dumpAsXml(pWriter);
}
(void)xmlTextWriterEndElement(pWriter);
@@ -249,7 +249,7 @@ void EditTextObjectImpl::dumpAsXml(xmlTextWriterPtr pWriter) const
#if DEBUG_EDIT_ENGINE
void EditTextObjectImpl::Dump() const
{
- for (auto const& content : aContents)
+ for (auto const& content : maContents)
content.Dump();
}
#endif
@@ -272,11 +272,11 @@ static EditEngineItemPool* getEditEngineItemPool(SfxItemPool* pPool)
}
EditTextObjectImpl::EditTextObjectImpl( SfxItemPool* pP )
- : nMetric(0xFFFF)
- , nUserType(OutlinerMode::DontKnow)
- , nScriptType(SvtScriptType::NONE)
- , bVertical(false)
- , mnRotation(TextRotation::NONE)
+ : meUserType(OutlinerMode::DontKnow)
+ , meScriptType(SvtScriptType::NONE)
+ , meRotation(TextRotation::NONE)
+ , mnMetric(0xFFFF)
+ , mbVertical(false)
{
// #i101239# ensure target is an EditEngineItemPool, else
// fallback to pool ownership. This is needed to ensure that at
@@ -284,49 +284,49 @@ EditTextObjectImpl::EditTextObjectImpl( SfxItemPool* pP )
// When registering would happen at an alien pool which just uses an
// EditEngineItemPool as some sub-pool, that pool could already
// be decoupled and deleted which would lead to crashes.
- pPool = getEditEngineItemPool(pP);
+ mpPool = getEditEngineItemPool(pP);
- if ( pPool )
+ if ( mpPool )
{
- bOwnerOfPool = false;
+ mbOwnerOfPool = false;
}
else
{
- pPool = EditEngine::CreatePool();
- bOwnerOfPool = true;
+ mpPool = EditEngine::CreatePool();
+ mbOwnerOfPool = true;
}
}
EditTextObjectImpl::EditTextObjectImpl( const EditTextObjectImpl& r )
- : nMetric(r.nMetric)
- , nUserType(r.nUserType)
- , nScriptType(r.nScriptType)
- , bVertical(r.bVertical)
- , mnRotation(r.mnRotation)
+ : meUserType(r.meUserType)
+ , meScriptType(r.meScriptType)
+ , meRotation(r.meRotation)
+ , mnMetric(r.mnMetric)
+ , mbVertical(r.mbVertical)
{
// Do not copy PortionInfo
- if ( !r.bOwnerOfPool )
+ if ( !r.mbOwnerOfPool )
{
// reuse alien pool; this must be an EditEngineItemPool
// since there is no other way to construct a BinTextObject
// than it's regular constructor where that is ensured
- pPool = r.pPool;
- bOwnerOfPool = false;
+ mpPool = r.mpPool;
+ mbOwnerOfPool = false;
}
else
{
- pPool = EditEngine::CreatePool();
- bOwnerOfPool = true;
+ mpPool = EditEngine::CreatePool();
+ mbOwnerOfPool = true;
}
- if (bOwnerOfPool && r.pPool)
- pPool->SetDefaultMetric( r.pPool->GetMetric( DEF_METRIC ) );
+ if (mbOwnerOfPool && r.mpPool)
+ mpPool->SetDefaultMetric( r.mpPool->GetMetric( DEF_METRIC ) );
- aContents.reserve(r.aContents.size());
- for (auto const& content : r.aContents)
- aContents.push_back(std::unique_ptr<ContentInfo>(new ContentInfo(*content, *pPool)));
+ maContents.reserve(r.maContents.size());
+ for (auto const& content : r.maContents)
+ maContents.push_back(std::unique_ptr<ContentInfo>(new ContentInfo(*content, *mpPool)));
}
EditTextObjectImpl::~EditTextObjectImpl()
@@ -335,18 +335,18 @@ EditTextObjectImpl::~EditTextObjectImpl()
// Remove contents before deleting the pool instance since each content
// has to access the pool instance in its destructor.
- aContents.clear();
+ maContents.clear();
}
void EditTextObjectImpl::SetUserType( OutlinerMode n )
{
- nUserType = n;
+ meUserType = n;
}
void EditTextObjectImpl::NormalizeString( svl::SharedStringPool& rPool )
{
- for (auto const& content : aContents)
+ for (auto const& content : maContents)
{
ContentInfo& rInfo = *content;
rInfo.NormalizeString(rPool);
@@ -356,8 +356,8 @@ void EditTextObjectImpl::NormalizeString( svl::SharedStringPool& rPool )
std::vector<svl::SharedString> EditTextObjectImpl::GetSharedStrings() const
{
std::vector<svl::SharedString> aSSs;
- aSSs.reserve(aContents.size());
- for (auto const& content : aContents)
+ aSSs.reserve(maContents.size());
+ for (auto const& content : maContents)
{
const ContentInfo& rInfo = *content;
aSSs.push_back(rInfo.GetSharedString());
@@ -367,70 +367,70 @@ std::vector<svl::SharedString> EditTextObjectImpl::GetSharedStrings() const
bool EditTextObjectImpl::IsVertical() const
{
- return (bVertical && mnRotation == TextRotation::NONE) ||
- (!bVertical && mnRotation != TextRotation::NONE);
+ return (mbVertical && meRotation == TextRotation::NONE) ||
+ (!mbVertical && meRotation != TextRotation::NONE);
}
bool EditTextObjectImpl::IsTopToBottom() const
{
- return (bVertical && mnRotation == TextRotation::NONE) ||
- (!bVertical && mnRotation == TextRotation::TOPTOBOTTOM);
+ return (mbVertical && meRotation == TextRotation::NONE) ||
+ (!mbVertical && meRotation == TextRotation::TOPTOBOTTOM);
}
void EditTextObjectImpl::SetVertical( bool bVert)
{
- if (bVert != bVertical)
+ if (bVert != mbVertical)
{
- bVertical = bVert;
+ mbVertical = bVert;
ClearPortionInfo();
}
}
bool EditTextObjectImpl::GetDirectVertical() const
{
- return bVertical;
+ return mbVertical;
}
void EditTextObjectImpl::SetRotation(TextRotation nRotation)
{
- if (mnRotation != nRotation)
+ if (meRotation != nRotation)
{
- mnRotation = nRotation;
+ meRotation = nRotation;
ClearPortionInfo();
}
}
TextRotation EditTextObjectImpl::GetRotation() const
{
- return mnRotation;
+ return meRotation;
}
void EditTextObjectImpl::SetScriptType( SvtScriptType nType )
{
- nScriptType = nType;
+ meScriptType = nType;
}
XEditAttribute EditTextObjectImpl::CreateAttrib( const SfxPoolItem& rItem, sal_Int32 nStart, sal_Int32 nEnd )
{
- return MakeXEditAttribute( *pPool, rItem, nStart, nEnd );
+ return MakeXEditAttribute( *mpPool, rItem, nStart, nEnd );
}
void EditTextObjectImpl::DestroyAttrib( const XEditAttribute& rAttr )
{
- pPool->Remove( *rAttr.GetItem() );
+ mpPool->Remove( *rAttr.GetItem() );
}
ContentInfo* EditTextObjectImpl::CreateAndInsertContent()
{
- aContents.push_back(std::unique_ptr<ContentInfo>(new ContentInfo(*pPool)));
- return aContents.back().get();
+ maContents.push_back(std::unique_ptr<ContentInfo>(new ContentInfo(*mpPool)));
+ return maContents.back().get();
}
sal_Int32 EditTextObjectImpl::GetParagraphCount() const
{
- size_t nSize = aContents.size();
+ size_t nSize = maContents.size();
if (nSize > EE_PARA_MAX_COUNT)
{
SAL_WARN( "editeng", "EditTextObjectImpl::GetParagraphCount - overflow " << nSize);
@@ -441,20 +441,20 @@ sal_Int32 EditTextObjectImpl::GetParagraphCount() const
OUString EditTextObjectImpl::GetText(sal_Int32 nPara) const
{
- if (nPara < 0 || o3tl::make_unsigned(nPara) >= aContents.size())
+ if (nPara < 0 || o3tl::make_unsigned(nPara) >= maContents.size())
return OUString();
- return aContents[nPara]->GetText();
+ return maContents[nPara]->GetText();
}
void EditTextObjectImpl::ClearPortionInfo()
{
- pPortionInfo.reset();
+ mpPortionInfo.reset();
}
bool EditTextObjectImpl::HasOnlineSpellErrors() const
{
- for (auto const& content : aContents)
+ for (auto const& content : maContents)
{
if ( content->GetWrongList() && !content->GetWrongList()->empty() )
return true;
@@ -464,11 +464,11 @@ bool EditTextObjectImpl::HasOnlineSpellErrors() const
void EditTextObjectImpl::GetCharAttribs( sal_Int32 nPara, std::vector<EECharAttrib>& rLst ) const
{
- if (nPara < 0 || o3tl::make_unsigned(nPara) >= aContents.size())
+ if (nPara < 0 || o3tl::make_unsigned(nPara) >= maContents.size())
return;
rLst.clear();
- const ContentInfo& rC = *aContents[nPara];
+ const ContentInfo& rC = *maContents[nPara];
for (const XEditAttribute & rAttr : rC.maCharAttribs)
{
EECharAttrib aEEAttr(rAttr.GetStart(), rAttr.GetEnd(), rAttr.GetItem());
@@ -483,9 +483,9 @@ bool EditTextObjectImpl::IsFieldObject() const
const SvxFieldItem* EditTextObjectImpl::GetField() const
{
- if (aContents.size() == 1)
+ if (maContents.size() == 1)
{
- const ContentInfo& rC = *aContents[0];
+ const ContentInfo& rC = *maContents[0];
if (rC.GetText().getLength() == 1)
{
size_t nAttribs = rC.maCharAttribs.size();
@@ -502,10 +502,10 @@ const SvxFieldItem* EditTextObjectImpl::GetField() const
const SvxFieldData* EditTextObjectImpl::GetFieldData(sal_Int32 nPara, size_t nPos, sal_Int32 nType) const
{
- if (nPara < 0 || o3tl::make_unsigned(nPara) >= aContents.size())
+ if (nPara < 0 || o3tl::make_unsigned(nPara) >= maContents.size())
return nullptr;
- const ContentInfo& rC = *aContents[nPara];
+ const ContentInfo& rC = *maContents[nPara];
if (nPos >= rC.maCharAttribs.size())
// URL position is out-of-bound.
return nullptr;
@@ -535,10 +535,10 @@ const SvxFieldData* EditTextObjectImpl::GetFieldData(sal_Int32 nPara, size_t nPo
bool EditTextObjectImpl::HasField( sal_Int32 nType ) const
{
- size_t nParagraphs = aContents.size();
+ size_t nParagraphs = maContents.size();
for (size_t nPara = 0; nPara < nParagraphs; ++nPara)
{
- const ContentInfo& rC = *aContents[nPara];
+ const ContentInfo& rC = *maContents[nPara];
size_t nAttrs = rC.maCharAttribs.size();
for (size_t nAttr = 0; nAttr < nAttrs; ++nAttr)
{
@@ -560,7 +560,7 @@ bool EditTextObjectImpl::HasField( sal_Int32 nType ) const
const SfxItemSet& EditTextObjectImpl::GetParaAttribs(sal_Int32 nPara) const
{
- const ContentInfo& rC = *aContents[nPara];
+ const ContentInfo& rC = *maContents[nPara];
return rC.GetParaAttribs();
}
@@ -568,16 +568,16 @@ bool EditTextObjectImpl::RemoveCharAttribs( sal_uInt16 _nWhich )
{
bool bChanged = false;
- for ( size_t nPara = aContents.size(); nPara; )
+ for ( size_t nPara = maContents.size(); nPara; )
{
- ContentInfo& rC = *aContents[--nPara];
+ ContentInfo& rC = *maContents[--nPara];
for (size_t nAttr = rC.maCharAttribs.size(); nAttr; )
{
XEditAttribute& rAttr = rC.maCharAttribs[--nAttr];
if ( !_nWhich || (rAttr.GetItem()->Which() == _nWhich) )
{
- pPool->Remove(*rAttr.GetItem());
+ mpPool->Remove(*rAttr.GetItem());
rC.maCharAttribs.erase(rC.maCharAttribs.begin()+nAttr);
bChanged = true;
}
@@ -620,13 +620,13 @@ public:
void EditTextObjectImpl::GetAllSections( std::vector<editeng::Section>& rAttrs ) const
{
std::vector<editeng::Section> aAttrs;
- aAttrs.reserve(aContents.size());
+ aAttrs.reserve(maContents.size());
std::vector<size_t> aBorders;
- for (size_t nPara = 0; nPara < aContents.size(); ++nPara)
+ for (size_t nPara = 0; nPara < maContents.size(); ++nPara)
{
aBorders.clear();
- const ContentInfo& rC = *aContents[nPara];
+ const ContentInfo& rC = *maContents[nPara];
aBorders.push_back(0);
aBorders.push_back(rC.GetText().getLength());
for (const XEditAttribute & rAttr : rC.maCharAttribs)
@@ -670,9 +670,9 @@ void EditTextObjectImpl::GetAllSections( std::vector<editeng::Section>& rAttrs )
// Go through all formatted paragraphs, and store format items.
std::vector<editeng::Section>::iterator itAttr = aAttrs.begin();
- for (sal_Int32 nPara = 0; nPara < static_cast<sal_Int32>(aContents.size()); ++nPara)
+ for (sal_Int32 nPara = 0; nPara < static_cast<sal_Int32>(maContents.size()); ++nPara)
{
- const ContentInfo& rC = *aContents[nPara];
+ const ContentInfo& rC = *maContents[nPara];
itAttr = std::find_if(itAttr, aAttrs.end(), FindByParagraph(nPara));
if (itAttr == aAttrs.end())
@@ -722,20 +722,20 @@ void EditTextObjectImpl::GetAllSections( std::vector<editeng::Section>& rAttrs )
void EditTextObjectImpl::GetStyleSheet(sal_Int32 nPara, OUString& rName, SfxStyleFamily& rFamily) const
{
- if (nPara < 0 || o3tl::make_unsigned(nPara) >= aContents.size())
+ if (nPara < 0 || o3tl::make_unsigned(nPara) >= maContents.size())
return;
- const ContentInfo& rC = *aContents[nPara];
+ const ContentInfo& rC = *maContents[nPara];
rName = rC.GetStyle();
rFamily = rC.GetFamily();
}
void EditTextObjectImpl::SetStyleSheet(sal_Int32 nPara, const OUString& rName, const SfxStyleFamily& rFamily)
{
- if (nPara < 0 || o3tl::make_unsigned(nPara) >= aContents.size())
+ if (nPara < 0 || o3tl::make_unsigned(nPara) >= maContents.size())
return;
- ContentInfo& rC = *aContents[nPara];
+ ContentInfo& rC = *maContents[nPara];
rC.SetStyle(rName);
rC.SetFamily(rFamily);
}
@@ -744,12 +744,12 @@ bool EditTextObjectImpl::ImpChangeStyleSheets(
std::u16string_view rOldName, SfxStyleFamily eOldFamily,
const OUString& rNewName, SfxStyleFamily eNewFamily )
{
- const size_t nParagraphs = aContents.size();
+ const size_t nParagraphs = maContents.size();
bool bChanges = false;
for (size_t nPara = 0; nPara < nParagraphs; ++nPara)
{
- ContentInfo& rC = *aContents[nPara];
+ ContentInfo& rC = *maContents[nPara];
if ( rC.GetFamily() == eOldFamily )
{
if ( rC.GetStyle() == rOldName )
@@ -790,16 +790,16 @@ bool EditTextObjectImpl::Equals( const EditTextObjectImpl& rCompare, bool bCompa
if( this == &rCompare )
return true;
- if( ( bComparePool && pPool != rCompare.pPool ) ||
- ( nMetric != rCompare.nMetric ) ||
- ( nUserType!= rCompare.nUserType ) ||
- ( nScriptType != rCompare.nScriptType ) ||
- ( bVertical != rCompare.bVertical ) ||
- ( mnRotation != rCompare.mnRotation ) )
+ if( ( bComparePool && mpPool != rCompare.mpPool ) ||
+ ( mnMetric != rCompare.mnMetric ) ||
+ ( meUserType!= rCompare.meUserType ) ||
+ ( meScriptType != rCompare.meScriptType ) ||
+ ( mbVertical != rCompare.mbVertical ) ||
+ ( meRotation != rCompare.meRotation ) )
return false;
return std::equal(
- aContents.begin(), aContents.end(), rCompare.aContents.begin(), rCompare.aContents.end(),
+ maContents.begin(), maContents.end(), rCompare.maContents.begin(), rCompare.maContents.end(),
[bComparePool](const auto& c1, const auto& c2) { return c1->Equals(*c2, bComparePool); });
}
@@ -808,7 +808,7 @@ bool EditTextObjectImpl::isWrongListEqual(const EditTextObject& rComp) const
{
const EditTextObjectImpl& rCompare = static_cast<const EditTextObjectImpl&>(rComp);
return std::equal(
- aContents.begin(), aContents.end(), rCompare.aContents.begin(), rCompare.aContents.end(),
+ maContents.begin(), maContents.end(), rCompare.maContents.begin(), rCompare.maContents.end(),
[](const auto& c1, const auto& c2) { return c1->isWrongListEqual(*c2); });
}
diff --git a/editeng/source/editeng/editobj2.hxx b/editeng/source/editeng/editobj2.hxx
index f00f9ef72139..2a972a4a9564 100644
--- a/editeng/source/editeng/editobj2.hxx
+++ b/editeng/source/editeng/editobj2.hxx
@@ -169,17 +169,18 @@ public:
typedef std::vector<std::unique_ptr<ContentInfo> > ContentInfosType;
private:
- ContentInfosType aContents;
- rtl::Reference<SfxItemPool> pPool;
- std::unique_ptr<XParaPortionList> pPortionInfo;
+ ContentInfosType maContents;
+ rtl::Reference<SfxItemPool> mpPool;
+ std::unique_ptr<XParaPortionList> mpPortionInfo;
- sal_uInt16 nMetric;
- OutlinerMode nUserType;
- SvtScriptType nScriptType;
+ OutlinerMode meUserType;
+ SvtScriptType meScriptType;
+ TextRotation meRotation;
- bool bOwnerOfPool:1;
- bool bVertical:1;
- TextRotation mnRotation;
+ sal_uInt16 mnMetric;
+
+ bool mbOwnerOfPool;
+ bool mbVertical;
bool ImpChangeStyleSheets( std::u16string_view rOldName, SfxStyleFamily eOldFamily,
const OUString& rNewName, SfxStyleFamily eNewFamily );
@@ -191,7 +192,7 @@ public:
EditTextObjectImpl& operator=(const EditTextObjectImpl&) = delete;
- virtual OutlinerMode GetUserType() const override { return nUserType;}
+ virtual OutlinerMode GetUserType() const override { return meUserType;}
virtual void SetUserType( OutlinerMode n ) override;
virtual void NormalizeString( svl::SharedStringPool& rPool ) override;
@@ -204,7 +205,7 @@ public:
virtual void SetRotation(TextRotation nRotation) override;
virtual TextRotation GetRotation() const override;
- virtual SvtScriptType GetScriptType() const override { return nScriptType;}
+ virtual SvtScriptType GetScriptType() const override { return meScriptType;}
void SetScriptType( SvtScriptType nType );
virtual std::unique_ptr<EditTextObject> Clone() const override;
@@ -213,13 +214,13 @@ public:
XEditAttribute CreateAttrib( const SfxPoolItem& rItem, sal_Int32 nStart, sal_Int32 nEnd );
void DestroyAttrib( const XEditAttribute& rAttr );
- ContentInfosType& GetContents() { return aContents;}
- const ContentInfosType& GetContents() const { return aContents;}
- SfxItemPool* GetPool() { return pPool.get(); }
- virtual const SfxItemPool* GetPool() const override { return pPool.get(); }
- XParaPortionList* GetPortionInfo() const { return pPortionInfo.get(); }
+ ContentInfosType& GetContents() { return maContents;}
+ const ContentInfosType& GetContents() const { return maContents;}
+ SfxItemPool* GetPool() { return mpPool.get(); }
+ virtual const SfxItemPool* GetPool() const override { return mpPool.get(); }
+ XParaPortionList* GetPortionInfo() const { return mpPortionInfo.get(); }
void SetPortionInfo( std::unique_ptr<XParaPortionList> pP )
- { pPortionInfo = std::move(pP); }
+ { mpPortionInfo = std::move(pP); }
virtual sal_Int32 GetParagraphCount() const override;
virtual OUString GetText(sal_Int32 nParagraph) const override;
@@ -250,11 +251,11 @@ public:
virtual editeng::FieldUpdater GetFieldUpdater() override { return editeng::FieldUpdater(*this); }
- bool HasMetric() const { return nMetric != 0xFFFF; }
- sal_uInt16 GetMetric() const { return nMetric; }
- void SetMetric( sal_uInt16 n ) { nMetric = n; }
+ bool HasMetric() const { return mnMetric != 0xFFFF; }
+ sal_uInt16 GetMetric() const { return mnMetric; }
+ void SetMetric( sal_uInt16 n ) { mnMetric = n; }
- bool IsOwnerOfPool() const { return bOwnerOfPool; }
+ bool IsOwnerOfPool() const { return mbOwnerOfPool; }
virtual bool operator==( const EditTextObject& rCompare ) const override;
bool Equals( const EditTextObjectImpl& rCompare, bool bComparePool ) const;
More information about the Libreoffice-commits
mailing list