sw/source/core/frmedt/fetab.cxx | 34 +++++++++++++++------------------- 1 file changed, 15 insertions(+), 19 deletions(-)
New commits: commit 530d3c92bd79f3c0e8d646e48a2eff1dae2921da Author: Bjoern Michaelsen <bjoern.michael...@canonical.com> Date: Thu Feb 26 13:05:53 2015 +0100 make arbitrary number a constant and add comment on fishiness Change-Id: I65baf9e4583c78ca3128352112fdeeffce3b3225 diff --git a/sw/source/core/frmedt/fetab.cxx b/sw/source/core/frmedt/fetab.cxx index f38502c..3d94e39 100644 --- a/sw/source/core/frmedt/fetab.cxx +++ b/sw/source/core/frmedt/fetab.cxx @@ -84,8 +84,10 @@ const SwFrm *pRowCacheLastCellFrm = 0; class TblWait { const ::std::unique_ptr<SwWait> m_pWait; + // this seems really fishy: do some locking, if an arbitrary number of lines is exceeded + static const size_t our_kLineLimit = 20; bool ShouldWait(size_t nCnt, SwFrm *pFrm, size_t nCnt2) - { return 20 < nCnt || 20 < nCnt2 || (pFrm && 20 < pFrm->ImplFindTabFrm()->GetTable()->GetTabLines().size()); } + { return our_kLineLimit < nCnt || our_kLineLimit < nCnt2 || (pFrm && our_kLineLimit < pFrm->ImplFindTabFrm()->GetTable()->GetTabLines().size()); } public: TblWait(size_t nCnt, SwFrm *pFrm, SwDocShell &rDocShell, size_t nCnt2 = 0) : m_pWait( ShouldWait(nCnt, pFrm, nCnt2) ? ::std::unique_ptr<SwWait>(new SwWait( rDocShell, true )) : nullptr ) commit 6ee7900b587d4cba6f6a07548f96adcc42f64eaf Author: Bjoern Michaelsen <bjoern.michael...@canonical.com> Date: Thu Feb 26 13:00:57 2015 +0100 more constness Change-Id: I5bbddaebb6cf820afced89e634814f485ec38859 diff --git a/sw/source/core/frmedt/fetab.cxx b/sw/source/core/frmedt/fetab.cxx index 73d0862..f38502c 100644 --- a/sw/source/core/frmedt/fetab.cxx +++ b/sw/source/core/frmedt/fetab.cxx @@ -83,20 +83,15 @@ const SwFrm *pRowCacheLastCellFrm = 0; class TblWait { - ::std::unique_ptr<SwWait> m_pWait; + const ::std::unique_ptr<SwWait> m_pWait; + bool ShouldWait(size_t nCnt, SwFrm *pFrm, size_t nCnt2) + { return 20 < nCnt || 20 < nCnt2 || (pFrm && 20 < pFrm->ImplFindTabFrm()->GetTable()->GetTabLines().size()); } public: - TblWait(size_t nCnt, SwFrm *pFrm, SwDocShell &rDocShell, size_t nCnt2 = 0); + TblWait(size_t nCnt, SwFrm *pFrm, SwDocShell &rDocShell, size_t nCnt2 = 0) + : m_pWait( ShouldWait(nCnt, pFrm, nCnt2) ? ::std::unique_ptr<SwWait>(new SwWait( rDocShell, true )) : nullptr ) + { } }; -TblWait::TblWait(size_t const nCnt, SwFrm *pFrm, SwDocShell &rDocShell, size_t const nCnt2): - m_pWait( nullptr ) -{ - const bool bWait = 20 < nCnt || 20 < nCnt2 || (pFrm && - 20 < pFrm->ImplFindTabFrm()->GetTable()->GetTabLines().size()); - if( bWait ) - m_pWait = ::std::unique_ptr<SwWait>(new SwWait( rDocShell, true )); -} - void SwFEShell::ParkCursorInTab() { SwCursor * pSwCrsr = GetSwCrsr(); commit 6ce7808d586bcfb442160d58f4ce5b55d53067b2 Author: Bjoern Michaelsen <bjoern.michael...@canonical.com> Date: Thu Feb 26 12:47:05 2015 +0100 unique_ptr, constness, naming conventions Change-Id: I37cbfbcc887ec82e750ba1bc614f4eda77be933b diff --git a/sw/source/core/frmedt/fetab.cxx b/sw/source/core/frmedt/fetab.cxx index 729de30..73d0862 100644 --- a/sw/source/core/frmedt/fetab.cxx +++ b/sw/source/core/frmedt/fetab.cxx @@ -83,19 +83,18 @@ const SwFrm *pRowCacheLastCellFrm = 0; class TblWait { - SwWait *pWait; + ::std::unique_ptr<SwWait> m_pWait; public: TblWait(size_t nCnt, SwFrm *pFrm, SwDocShell &rDocShell, size_t nCnt2 = 0); - ~TblWait() { delete pWait; } }; TblWait::TblWait(size_t const nCnt, SwFrm *pFrm, SwDocShell &rDocShell, size_t const nCnt2): - pWait( 0 ) + m_pWait( nullptr ) { - bool bWait = 20 < nCnt || 20 < nCnt2 || (pFrm && + const bool bWait = 20 < nCnt || 20 < nCnt2 || (pFrm && 20 < pFrm->ImplFindTabFrm()->GetTable()->GetTabLines().size()); if( bWait ) - pWait = new SwWait( rDocShell, true ); + m_pWait = ::std::unique_ptr<SwWait>(new SwWait( rDocShell, true )); } void SwFEShell::ParkCursorInTab() commit 7deb4c93a804b2f17d102f2f24448a5c638a96ea Author: Bjoern Michaelsen <bjoern.michael...@canonical.com> Date: Thu Feb 26 12:34:34 2015 +0100 cppcheck: assuming these to be intended to actually have a scope Change-Id: Id1af6eb4064a524b12113b5b52b15f2ea4d6ada4 diff --git a/sw/source/core/frmedt/fetab.cxx b/sw/source/core/frmedt/fetab.cxx index cef2cee..729de30 100644 --- a/sw/source/core/frmedt/fetab.cxx +++ b/sw/source/core/frmedt/fetab.cxx @@ -211,7 +211,7 @@ bool SwFEShell::InsertRow( sal_uInt16 nCnt, bool bBehind ) } GetTblSel( *this, aBoxes, nsSwTblSearchType::TBLSEARCH_ROW ); - TblWait( nCnt, pFrm, *GetDoc()->GetDocShell(), aBoxes.size() ); + TblWait aWait( nCnt, pFrm, *GetDoc()->GetDocShell(), aBoxes.size() ); bool bRet = false; if ( aBoxes.size() ) @@ -249,7 +249,7 @@ bool SwFEShell::InsertCol( sal_uInt16 nCnt, bool bBehind ) SwSelBoxes aBoxes; GetTblSel( *this, aBoxes, nsSwTblSearchType::TBLSEARCH_COL ); - TblWait( nCnt, pFrm, *GetDoc()->GetDocShell(), aBoxes.size() ); + TblWait aWait( nCnt, pFrm, *GetDoc()->GetDocShell(), aBoxes.size() ); bool bRet = false; if( !aBoxes.empty() ) @@ -299,7 +299,7 @@ bool SwFEShell::DeleteCol() GetTblSel( *this, aBoxes, nsSwTblSearchType::TBLSEARCH_COL ); if ( !aBoxes.empty() ) { - TblWait( aBoxes.size(), pFrm, *GetDoc()->GetDocShell() ); + TblWait aWait( aBoxes.size(), pFrm, *GetDoc()->GetDocShell() ); // remove crsr from the deletion area. // Put them behind/on the table; via the @@ -351,7 +351,7 @@ bool SwFEShell::DeleteRow(bool bCompleteTable) if( !aBoxes.empty() ) { - TblWait( aBoxes.size(), pFrm, *GetDoc()->GetDocShell() ); + TblWait aWait( aBoxes.size(), pFrm, *GetDoc()->GetDocShell() ); // Delete cursors from the deletion area. // Then the cursor is: @@ -463,7 +463,7 @@ sal_uInt16 SwFEShell::MergeTab() SET_CURR_SHELL( this ); StartAllAction(); - TblWait(pTableCrsr->GetSelectedBoxesCount(), 0, + TblWait aWait(pTableCrsr->GetSelectedBoxesCount(), 0, *GetDoc()->GetDocShell(), pTblNd->GetTable().GetTabLines().size() ); @@ -506,7 +506,7 @@ bool SwFEShell::SplitTab( bool bVert, sal_uInt16 nCnt, bool bSameHeight ) GetTblSel( *this, aBoxes ); if( !aBoxes.empty() ) { - TblWait( nCnt, pFrm, *GetDoc()->GetDocShell(), aBoxes.size() ); + TblWait aWait( nCnt, pFrm, *GetDoc()->GetDocShell(), aBoxes.size() ); // now delete the columns bRet = GetDoc()->SplitTbl( aBoxes, bVert, nCnt, bSameHeight ); @@ -1262,7 +1262,7 @@ bool SwFEShell::DeleteTblSel() GetTblSelCrs( *this, aBoxes ); if( !aBoxes.empty() ) { - TblWait( aBoxes.size(), pFrm, *GetDoc()->GetDocShell() ); + TblWait aWait( aBoxes.size(), pFrm, *GetDoc()->GetDocShell() ); // cursor should be removed from deletion area. // Put them behind/on the table; via the document _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits