diff options
author | Eike Rathke <erack@redhat.com> | 2015-04-17 00:06:16 +0200 |
---|---|---|
committer | Eike Rathke <erack@redhat.com> | 2015-04-17 01:11:38 +0200 |
commit | 61a4859a63619c12057f28ba7df76336ffd45ccc (patch) | |
tree | b6f8108c81101dc5478d28c918383f13d0eadcf1 /sc/source | |
parent | 9bfe478eaaa1c6b88bd396c94724a4afcc737549 (diff) |
TableRef: differentiate between cell and range reference
Change-Id: I1243f8407e8301e0e4662b8839ab53d29dcfe5ed
Diffstat (limited to 'sc/source')
-rw-r--r-- | sc/source/core/tool/compiler.cxx | 18 |
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 { |