diff options
author | Noel Grandin <noel.grandin@collabora.co.uk> | 2018-07-05 14:29:11 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2018-07-10 12:31:43 +0200 |
commit | 0fb5ca6cc9cc55a4436a36c533461769b1fc8526 (patch) | |
tree | 30e21bfcb0a6ad46f52a4e664728753c03d7a837 /writerfilter/source/dmapper/NumberingManager.cxx | |
parent | 1a33947a91685808fd5f6d4903b6ae896686066d (diff) |
tdf#79877 perf loading docx file, writerfilter/ improvements
this improves load time by 20%.
We switch from shared_ptr to tools::SvRef to manage the objects
I noticed some double inheritance like this:
DomainMapper
LoggedProperties
Properties
SvRefBase
LoggedTable
Table
SvRefBase
so to be safe I made all the ref-count-base-class inheritance
virtual.
Change-Id: Ia3de9733f5c6966e8171f43d083dcc087040b8cd
Reviewed-on: https://gerrit.libreoffice.org/57022
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'writerfilter/source/dmapper/NumberingManager.cxx')
-rw-r--r-- | writerfilter/source/dmapper/NumberingManager.cxx | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/writerfilter/source/dmapper/NumberingManager.cxx b/writerfilter/source/dmapper/NumberingManager.cxx index c717a9af3898..5defd92f0d49 100644 --- a/writerfilter/source/dmapper/NumberingManager.cxx +++ b/writerfilter/source/dmapper/NumberingManager.cxx @@ -129,7 +129,7 @@ bool ListLevel::HasValues() const return m_bHasValues; } -void ListLevel::SetParaStyle( const std::shared_ptr< StyleSheetEntry >& pStyle ) +void ListLevel::SetParaStyle( const tools::SvRef< StyleSheetEntry >& pStyle ) { if (!pStyle) return; @@ -821,7 +821,7 @@ void ListsManager::lcl_sprm( Sprm& rSprm ) { //create a new Abstract list entry OSL_ENSURE( !m_pCurrentDefinition.get(), "current entry has to be NULL here"); - m_pCurrentDefinition.reset( new AbstractListDef ); + m_pCurrentDefinition = new AbstractListDef; pProperties->resolve( *this ); //append it to the table m_aAbstractLists.push_back( m_pCurrentDefinition ); @@ -837,7 +837,7 @@ void ListsManager::lcl_sprm( Sprm& rSprm ) // Create a new list entry OSL_ENSURE( !m_pCurrentDefinition.get(), "current entry has to be NULL here"); ListDef::Pointer listDef( new ListDef ); - m_pCurrentDefinition = listDef; + m_pCurrentDefinition = listDef.get(); pProperties->resolve( *this ); //append it to the table m_aLists.push_back( listDef ); @@ -1088,7 +1088,7 @@ void ListsManager::lcl_sprm( Sprm& rSprm ) default: if (ListLevel::Pointer pCurrentLevel = m_pCurrentDefinition->GetCurrentLevel()) { - m_rDMapper.PushListProperties(pCurrentLevel); + m_rDMapper.PushListProperties(pCurrentLevel.get()); m_rDMapper.sprm( rSprm ); m_rDMapper.PopListProperties(); } @@ -1107,7 +1107,7 @@ void ListsManager::lcl_entry( int /* pos */, { // Create AbstractListDef's OSL_ENSURE( !m_pCurrentDefinition.get(), "current entry has to be NULL here"); - m_pCurrentDefinition.reset( new AbstractListDef( ) ); + m_pCurrentDefinition = new AbstractListDef( ); ref->resolve(*this); //append it to the table m_aAbstractLists.push_back( m_pCurrentDefinition ); |