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:
Noel Grandin
2026-05-17 22:02:16 +02:00
committed by Julien Nabet
parent 825509b5da
commit 83dfd80774
3 changed files with 4 additions and 10 deletions
+2 -7
View File
@@ -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();
}
+1 -1
View File
@@ -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;
+1 -2
View File
@@ -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;
};