From 1015e1f6f0fc14ce988e7b2e8c8eab5c397c00ab Mon Sep 17 00:00:00 2001 From: Eike Rathke Date: Mon, 25 Sep 2017 13:30:43 +0200 Subject: FormulaTokenArray::Clear() virtual, ScTokenArray::Clear() overrides A sliced Clear()/ClearScTokenArray() was never intended. Change-Id: I25df3fa8829f6bc8f1dee6ef0d27b28491d6a5c3 --- include/formula/tokenarray.hxx | 3 ++- sc/inc/tokenarray.hxx | 2 +- sc/source/core/tool/token.cxx | 5 +++-- sc/source/filter/inc/tokstack.hxx | 2 +- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/include/formula/tokenarray.hxx b/include/formula/tokenarray.hxx index 891b793c3f10..92c39bd4c60a 100644 --- a/include/formula/tokenarray.hxx +++ b/include/formula/tokenarray.hxx @@ -297,6 +297,8 @@ public: FormulaTokenArray( const FormulaTokenArray& ); virtual ~FormulaTokenArray(); + virtual void Clear(); + void SetFromRangeName( bool b ) { mbFromRangeName = b; } bool IsFromRangeName() const { return mbFromRangeName; } @@ -310,7 +312,6 @@ public: */ bool IsShareable() const { return mbShareable; } - void Clear(); void DelRPN(); FormulaToken* FirstToken() const; diff --git a/sc/inc/tokenarray.hxx b/sc/inc/tokenarray.hxx index 145972986cba..72039c856a41 100644 --- a/sc/inc/tokenarray.hxx +++ b/sc/inc/tokenarray.hxx @@ -59,7 +59,7 @@ public: (not copied!) */ ScTokenArray( const ScTokenArray& ); virtual ~ScTokenArray() override; - void ClearScTokenArray(); + virtual void Clear(); ScTokenArray* Clone() const; /// True copy! void GenHash(); diff --git a/sc/source/core/tool/token.cxx b/sc/source/core/tool/token.cxx index 4d77ad89e1a6..23709d160d33 100644 --- a/sc/source/core/tool/token.cxx +++ b/sc/source/core/tool/token.cxx @@ -1813,10 +1813,11 @@ ScTokenArray& ScTokenArray::operator=( const ScTokenArray& rArr ) return *this; } -void ScTokenArray::ClearScTokenArray() +void ScTokenArray::Clear() { - Clear(); + mnHashValue = 0; meVectorState = FormulaVectorEnabled; + FormulaTokenArray::Clear(); } ScTokenArray* ScTokenArray::Clone() const diff --git a/sc/source/filter/inc/tokstack.hxx b/sc/source/filter/inc/tokstack.hxx index 39c6561980e4..1a3776577993 100644 --- a/sc/source/filter/inc/tokstack.hxx +++ b/sc/source/filter/inc/tokstack.hxx @@ -381,7 +381,7 @@ inline const TokenId TokenPool::Store() const inline ScTokenArray* TokenPool::operator []( const TokenId& rId ) { - pScToken->ClearScTokenArray(); + pScToken->Clear(); if( rId ) {//...only if rId > 0! -- cgit v1.2.3