[Libreoffice-commits] core.git: Branch 'libreoffice-5-4' - sc/source
Michael Stahl
mstahl at redhat.com
Tue May 30 11:38:58 UTC 2017
sc/source/ui/Accessibility/AccessibleDocument.cxx | 20 +++++++++++---------
1 file changed, 11 insertions(+), 9 deletions(-)
New commits:
commit 1730bcf18a9a0ed27ed700d3b6ac0545d3cef283
Author: Michael Stahl <mstahl at redhat.com>
Date: Tue May 23 15:30:13 2017 +0200
sc: work around MSVC 2017 ICE in AccessibleDocument.cxx
MSVC 2017 dies with INTERNAL COMPILER ERROR on the ConvertLayerId
function, which uses fancy C++14 constexpr SdrLayerId/strong_int stuff;
it happens to compile without complaint if it is expressed as an
if-elseif chain instead of the switch statement.
Change-Id: Ib1324bbabeb7a971ba090b9647dde55c1cd0d587
(cherry picked from commit f11cbcb60d546ce9c7a840a67458c5c88f8a8531)
Reviewed-on: https://gerrit.libreoffice.org/38202
Reviewed-by: Eike Rathke <erack at redhat.com>
Tested-by: Jenkins <ci at libreoffice.org>
diff --git a/sc/source/ui/Accessibility/AccessibleDocument.cxx b/sc/source/ui/Accessibility/AccessibleDocument.cxx
index e2336902a3bd..b367101ea151 100644
--- a/sc/source/ui/Accessibility/AccessibleDocument.cxx
+++ b/sc/source/ui/Accessibility/AccessibleDocument.cxx
@@ -120,20 +120,22 @@ struct ScShapeDataLess
}
static void ConvertLayerId(sal_Int16& rLayerID) // changes the number of the LayerId so it the accessibility order
{
- switch (rLayerID)
+ // note: MSVC 2017 ICE's if this is written as "switch" so use "if"
+ if (sal_uInt8(SC_LAYER_FRONT) == rLayerID)
{
- case sal_uInt8(SC_LAYER_FRONT):
rLayerID = 1;
- break;
- case sal_uInt8(SC_LAYER_BACK):
+ }
+ else if (sal_uInt8(SC_LAYER_BACK) == rLayerID)
+ {
rLayerID = 0;
- break;
- case sal_uInt8(SC_LAYER_INTERN):
+ }
+ else if (sal_uInt8(SC_LAYER_INTERN) == rLayerID)
+ {
rLayerID = 2;
- break;
- case sal_uInt8(SC_LAYER_CONTROLS):
+ }
+ else if (sal_uInt8(SC_LAYER_CONTROLS) == rLayerID)
+ {
rLayerID = 3;
- break;
}
}
bool LessThanSheet(const ScAccessibleShapeData* pData) const
More information about the Libreoffice-commits
mailing list