diff options
author | Noel Grandin <noel.grandin@collabora.co.uk> | 2019-11-25 15:55:48 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2019-11-27 15:11:08 +0100 |
commit | 8bb1e1e1beee149af21b9a28ede62c987c85bd9a (patch) | |
tree | 4e3cbcd1fd0f055e720e734438afb27d35adf05c | |
parent | f4b128f0d607fa74c9a62744753beff497dd0fc3 (diff) |
tdf#108642 remove dynamic_cast
use virtual method instead.
Takes the opening time from 10.5s to 9.2s for me.
Change-Id: I015c05b112dd7e8b7ea3ef722e082d25a3062cce
Reviewed-on: https://gerrit.libreoffice.org/83847
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
(cherry picked from commit b4494f276795d1bb419d258ed0b2ec33c92c7290)
Reviewed-on: https://gerrit.libreoffice.org/83886
-rw-r--r-- | sw/source/core/inc/cellfrm.hxx | 3 | ||||
-rw-r--r-- | sw/source/core/inc/frame.hxx | 4 | ||||
-rw-r--r-- | sw/source/core/layout/tabfrm.cxx | 16 |
3 files changed, 17 insertions, 6 deletions
diff --git a/sw/source/core/inc/cellfrm.hxx b/sw/source/core/inc/cellfrm.hxx index 4e293a601f45..43de64d2adf6 100644 --- a/sw/source/core/inc/cellfrm.hxx +++ b/sw/source/core/inc/cellfrm.hxx @@ -55,6 +55,9 @@ public: SwCellFrame* GetFollowCell() const; SwCellFrame* GetPreviousCell() const; + virtual bool IsLeaveUpperAllowed() const override; + virtual bool IsCoveredCell() const override; + // used for rowspan stuff: const SwCellFrame& FindStartEndOfRowSpanCell( bool bStart ) const; long GetLayoutRowSpan() const; diff --git a/sw/source/core/inc/frame.hxx b/sw/source/core/inc/frame.hxx index 13270c1258a8..ae5e8378ee4b 100644 --- a/sw/source/core/inc/frame.hxx +++ b/sw/source/core/inc/frame.hxx @@ -891,8 +891,8 @@ public: // NEW TABLES // Some functions for covered/covering table cells. This way unnecessary // includes can be avoided - bool IsLeaveUpperAllowed() const; - bool IsCoveredCell() const; + virtual bool IsLeaveUpperAllowed() const; + virtual bool IsCoveredCell() const; bool IsInCoveredCell() const; // #i81146# new loop control diff --git a/sw/source/core/layout/tabfrm.cxx b/sw/source/core/layout/tabfrm.cxx index b7ffcceabdd5..1327dfbbe755 100644 --- a/sw/source/core/layout/tabfrm.cxx +++ b/sw/source/core/layout/tabfrm.cxx @@ -5694,14 +5694,22 @@ SwTwips SwTabFrame::CalcHeightOfFirstContentLine() const bool SwFrame::IsLeaveUpperAllowed() const { - const SwCellFrame* pThisCell = dynamic_cast<const SwCellFrame*>(this); - return pThisCell && pThisCell->GetLayoutRowSpan() > 1; + return false; +} + +bool SwCellFrame::IsLeaveUpperAllowed() const +{ + return GetLayoutRowSpan() > 1; } bool SwFrame::IsCoveredCell() const { - const SwCellFrame* pThisCell = dynamic_cast<const SwCellFrame*>(this); - return pThisCell && pThisCell->GetLayoutRowSpan() < 1; + return false; +} + +bool SwCellFrame::IsCoveredCell() const +{ + return GetLayoutRowSpan() < 1; } bool SwFrame::IsInCoveredCell() const |