reduce virtual calling in FormulaFAPToken
similar to
commit f47fc9a67f16a3da1e5cbcc8b821682298ec90b3
reduce ScRefListToken virtual calls
Push the GetFAPOrigToken() method down to the only subclass
that actually uses it.
Change-Id: Iac66fc21b71e2ecf08b7eb5669705797c393ca7e
Reviewed-on: https://gerrit.collaboraoffice.com/c/core/+/909
Tested-by: Noel Grandin <noel.grandin@collabora.com>
Reviewed-by: Noel Grandin <noel.grandin@collabora.com>
(cherry picked from commit 24cd3d084191af5f1f925d89ed99986dd8275e2f)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205266
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Tested-by: Jenkins
This commit is contained in:
committed by
Julien Nabet
parent
825509b5da
commit
83dfd80774
@@ -234,12 +234,6 @@ short* FormulaToken::GetJump() const
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
FormulaToken* FormulaToken::GetFAPOrigToken() const
|
||||
{
|
||||
SAL_WARN( "formula.core", "FormulaToken::GetFAPOrigToken: virtual dummy called" );
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
const ScSingleRefData* FormulaToken::GetSingleRef() const
|
||||
{
|
||||
OSL_FAIL( "FormulaToken::GetSingleRef: virtual dummy called" );
|
||||
@@ -319,7 +313,8 @@ bool FormulaByteToken::operator==( const FormulaToken& r ) const
|
||||
FormulaToken* FormulaFAPToken::GetFAPOrigToken() const { return pOrigToken.get(); }
|
||||
bool FormulaFAPToken::operator==( const FormulaToken& r ) const
|
||||
{
|
||||
return FormulaByteToken::operator==( r ) && pOrigToken == r.GetFAPOrigToken();
|
||||
return FormulaByteToken::operator==( r )
|
||||
&& pOrigToken == static_cast<const FormulaFAPToken&>(r).GetFAPOrigToken();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -599,7 +599,7 @@ void FormulaDlg_Impl::MakeTree(StructPage* _pTree, weld::TreeIter* pParent, cons
|
||||
OpCode eOp = _pToken->GetOpCode();
|
||||
|
||||
// #i101512# for output, the original token is needed
|
||||
const FormulaToken* pOrigToken = (_pToken->GetType() == svFAP) ? _pToken->GetFAPOrigToken() : _pToken;
|
||||
const FormulaToken* pOrigToken = (_pToken->GetType() == svFAP) ? static_cast<const FormulaFAPToken*>(_pToken)->GetFAPOrigToken() : _pToken;
|
||||
::std::map<const FormulaToken*, sheet::FormulaToken>::const_iterator itr = m_aTokenMap.find(pOrigToken);
|
||||
if (itr == m_aTokenMap.end())
|
||||
return;
|
||||
|
||||
@@ -224,7 +224,6 @@ public:
|
||||
virtual sal_Int16 GetSheet() const;
|
||||
virtual void SetSheet( sal_Int16 n );
|
||||
virtual short* GetJump() const;
|
||||
virtual FormulaToken* GetFAPOrigToken() const;
|
||||
|
||||
virtual const ScSingleRefData* GetSingleRef() const;
|
||||
virtual ScSingleRefData* GetSingleRef();
|
||||
@@ -320,7 +319,7 @@ public:
|
||||
FormulaByteToken( r ), pOrigToken( r.pOrigToken ) {}
|
||||
|
||||
virtual FormulaToken* Clone() const override { return new FormulaFAPToken(*this); }
|
||||
virtual FormulaToken* GetFAPOrigToken() const override;
|
||||
FormulaToken* GetFAPOrigToken() const;
|
||||
virtual bool operator==( const FormulaToken& rToken ) const override;
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user