[Libreoffice-commits] core.git: 2 commits - sc/inc sc/source
Eike Rathke
erack at redhat.com
Fri Mar 13 11:33:23 PDT 2015
sc/inc/token.hxx | 1 +
sc/source/core/tool/compiler.cxx | 27 ++++++++++++++++++++++++---
sc/source/core/tool/token.cxx | 5 +++++
3 files changed, 30 insertions(+), 3 deletions(-)
New commits:
commit 1e060e94629aac8b37d59e34159198aa9e8f4b39
Author: Eike Rathke <erack at redhat.com>
Date: Fri Mar 13 18:18:57 2015 +0000
add items to ScTableRefToken
Change-Id: I23ddec273f7d3df0d5342b73c54ae411b9ef3782
diff --git a/sc/source/core/tool/compiler.cxx b/sc/source/core/tool/compiler.cxx
index 7188176..ca67769 100644
--- a/sc/source/core/tool/compiler.cxx
+++ b/sc/source/core/tool/compiler.cxx
@@ -3308,23 +3308,44 @@ bool ScCompiler::IsErrorConstant( const OUString& rName ) const
bool ScCompiler::IsTableRefItem( const OUString& rName ) const
{
+ bool bItem = false;
OpCodeHashMap::const_iterator iLook( mxSymbols->getHashMap()->find( rName));
if (iLook != mxSymbols->getHashMap()->end())
{
+ // Only called when there actually is a current TableRef, hence
+ // accessing maTableRefs.back() is safe.
+ ScTableRefToken* p = dynamic_cast<ScTableRefToken*>(maTableRefs.back().mxToken.get());
+ assert(p); // not a ScTableRefToken can't be
+
switch ((*iLook).second)
{
case ocTableRefItemAll:
+ bItem = true;
+ p->AddItem( ScTableRefToken::ALL);
+ break;
case ocTableRefItemHeaders:
+ bItem = true;
+ p->AddItem( ScTableRefToken::HEADERS);
+ break;
case ocTableRefItemData:
+ bItem = true;
+ p->AddItem( ScTableRefToken::DATA);
+ break;
case ocTableRefItemTotals:
+ bItem = true;
+ p->AddItem( ScTableRefToken::TOTALS);
+ break;
case ocTableRefItemThisRow:
- maRawToken.SetOpCode( (*iLook).second );
- return true;
+ bItem = true;
+ p->AddItem( ScTableRefToken::THIS_ROW);
+ break;
default:
;
}
+ if (bItem)
+ maRawToken.SetOpCode( (*iLook).second );
}
- return false;
+ return bItem;
}
void ScCompiler::SetAutoCorrection( bool bVal )
commit 7dcaa806b8583224cb24d4a37ddf855b9c02150d
Author: Eike Rathke <erack at redhat.com>
Date: Fri Mar 13 17:58:59 2015 +0000
add ScTableRefToken::AddItem()
Change-Id: Iab74e027d9929bc100ad92c2126c17fca1e2e46a
diff --git a/sc/inc/token.hxx b/sc/inc/token.hxx
index 6f6cd4b..899d163 100644
--- a/sc/inc/token.hxx
+++ b/sc/inc/token.hxx
@@ -237,6 +237,7 @@ public:
virtual FormulaToken* Clone() const SAL_OVERRIDE { return new ScTableRefToken(*this); }
Item GetItem() const;
+ void AddItem( Item );
private:
diff --git a/sc/source/core/tool/token.cxx b/sc/source/core/tool/token.cxx
index eab3f8f..8963159 100644
--- a/sc/source/core/tool/token.cxx
+++ b/sc/source/core/tool/token.cxx
@@ -861,6 +861,11 @@ ScTableRefToken::Item ScTableRefToken::GetItem() const
return meItem;
}
+void ScTableRefToken::AddItem( ScTableRefToken::Item eItem )
+{
+ meItem = static_cast<ScTableRefToken::Item>(meItem | eItem);
+}
+
bool ScTableRefToken::operator==( const FormulaToken& r ) const
{
if ( !FormulaToken::operator==(r) )
More information about the Libreoffice-commits
mailing list