summaryrefslogtreecommitdiff
path: root/sc/source
diff options
context:
space:
mode:
authorEike Rathke <erack@redhat.com>2015-04-17 00:06:16 +0200
committerEike Rathke <erack@redhat.com>2015-04-17 01:11:38 +0200
commit61a4859a63619c12057f28ba7df76336ffd45ccc (patch)
treeb6f8108c81101dc5478d28c918383f13d0eadcf1 /sc/source
parent9bfe478eaaa1c6b88bd396c94724a4afcc737549 (diff)
TableRef: differentiate between cell and range reference
Change-Id: I1243f8407e8301e0e4662b8839ab53d29dcfe5ed
Diffstat (limited to 'sc/source')
-rw-r--r--sc/source/core/tool/compiler.cxx18
1 files changed, 14 insertions, 4 deletions
diff --git a/sc/source/core/tool/compiler.cxx b/sc/source/core/tool/compiler.cxx
index 1b044721b64e..524badf941f0 100644
--- a/sc/source/core/tool/compiler.cxx
+++ b/sc/source/core/tool/compiler.cxx
@@ -5049,10 +5049,20 @@ bool ScCompiler::HandleTableRef()
}
if (aRange.IsValid())
{
- ScComplexRefData aRefData;
- aRefData.InitFlags();
- aRefData.SetRange( aRange, aPos);
- pTR->SetAreaRefRPN( pNew->AddDoubleReference( aRefData ));
+ if (aRange.aStart == aRange.aEnd)
+ {
+ ScSingleRefData aRefData;
+ aRefData.InitFlags();
+ aRefData.SetAddress( aRange.aStart, aPos);
+ pTR->SetAreaRefRPN( pNew->AddSingleReference( aRefData ));
+ }
+ else
+ {
+ ScComplexRefData aRefData;
+ aRefData.InitFlags();
+ aRefData.SetRange( aRange, aPos);
+ pTR->SetAreaRefRPN( pNew->AddDoubleReference( aRefData ));
+ }
}
else
{