summaryrefslogtreecommitdiff
path: root/sc
diff options
context:
space:
mode:
authorTakeshi Abe <tabe@fixedpoint.jp>2014-09-04 14:30:28 +0900
committerCaolán McNamara <caolanm@redhat.com>2014-09-05 10:37:27 -0500
commita2762333bc052212b44200adfe553e46b83e53d2 (patch)
tree8e37e5003021ebe21708680debbcb754357de6ac /sc
parent247f87bc08e2f71e44d8f7f9af791e9288714985 (diff)
fdo#75757: remove inheritance to std::vector
from ApiTokenVector. Change-Id: Ie924e0e01db74b925a7f6063f8ce7fd952d04381 Reviewed-on: https://gerrit.libreoffice.org/11290 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'sc')
-rw-r--r--sc/source/filter/inc/formulabase.hxx25
-rw-r--r--sc/source/filter/oox/formulabase.cxx12
-rw-r--r--sc/source/filter/oox/formulaparser.cxx2
3 files changed, 34 insertions, 5 deletions
diff --git a/sc/source/filter/inc/formulabase.hxx b/sc/source/filter/inc/formulabase.hxx
index 8c2765f0f2e5..83b7bb47ccb6 100644
--- a/sc/source/filter/inc/formulabase.hxx
+++ b/sc/source/filter/inc/formulabase.hxx
@@ -263,11 +263,28 @@ typedef ::com::sun::star::uno::Sequence< ApiToken > ApiTokenSequence;
typedef ::com::sun::star::beans::Pair< ::com::sun::star::table::CellAddress, sal_Bool > ApiSpecialTokenInfo;
/** A vector of formula tokens with additional convenience functions. */
-class ApiTokenVector : public ::std::vector< ApiToken >
+class ApiTokenVector
{
public:
explicit ApiTokenVector();
+ ApiToken& operator[]( size_t i ) { return mvTokens[i]; }
+
+ size_t size() const { return mvTokens.size(); }
+
+ ApiToken& back() { return mvTokens.back(); }
+ const ApiToken& back() const { return mvTokens.back(); }
+
+ void clear() { mvTokens.clear(); }
+
+ void pop_back() { mvTokens.pop_back(); }
+
+ void push_back( const ApiToken& rToken ) { mvTokens.push_back( rToken ); }
+
+ void reserve( size_t n ) { mvTokens.reserve( n ); }
+
+ void resize( size_t n ) { mvTokens.resize( n ); }
+
/** Appends a new token with the passed op-code, returns its data field. */
::com::sun::star::uno::Any&
append( sal_Int32 nOpCode );
@@ -275,6 +292,12 @@ public:
/** Appends a new token with the passed op-code and data. */
template< typename Type >
inline void append( sal_Int32 nOpCode, const Type& rData ) { append( nOpCode ) <<= rData; }
+
+ /** Converts to a sequence. */
+ ApiTokenSequence toSequence() const;
+
+private:
+ ::std::vector< ApiToken > mvTokens;
};
// Token sequence iterator ====================================================
diff --git a/sc/source/filter/oox/formulabase.cxx b/sc/source/filter/oox/formulabase.cxx
index 2459791eb8e6..641e70e1cd89 100644
--- a/sc/source/filter/oox/formulabase.cxx
+++ b/sc/source/filter/oox/formulabase.cxx
@@ -145,14 +145,20 @@ void BinComplexRef2d::readBiff8Data( BiffInputStream& rStrm, bool bRelativeAsOff
// token vector, sequence =====================================================
ApiTokenVector::ApiTokenVector()
+ : mvTokens()
{
}
Any& ApiTokenVector::append( sal_Int32 nOpCode )
{
- resize( size() + 1 );
- back().OpCode = nOpCode;
- return back().Data;
+ mvTokens.resize( mvTokens.size() + 1 );
+ mvTokens.back().OpCode = nOpCode;
+ return mvTokens.back().Data;
+}
+
+ApiTokenSequence ApiTokenVector::toSequence() const
+{
+ return ContainerHelper::vectorToSequence( mvTokens );
}
// token sequence iterator ====================================================
diff --git a/sc/source/filter/oox/formulaparser.cxx b/sc/source/filter/oox/formulaparser.cxx
index 41331fb55d82..77ecaeeede28 100644
--- a/sc/source/filter/oox/formulaparser.cxx
+++ b/sc/source/filter/oox/formulaparser.cxx
@@ -69,7 +69,7 @@ ApiTokenSequence FormulaFinalizer::finalizeTokenArray( const ApiTokenSequence& r
const ApiToken* pToken = rTokens.getConstArray();
processTokens( pToken, pToken + rTokens.getLength() );
}
- return ContainerHelper::vectorToSequence( maTokens );
+ return maTokens.toSequence();
}
const FunctionInfo* FormulaFinalizer::resolveBadFuncName( const OUString& ) const