sc/inc/formularesult.hxx | 8 +++++--- sc/source/core/tool/formularesult.cxx | 24 ++++++++++++------------ 2 files changed, 17 insertions(+), 15 deletions(-)
New commits: commit 0780e58e57557d83362ec3a431415f1a4c90b729 Author: Noel Grandin <noel.gran...@collabora.co.uk> Date: Wed Oct 12 13:32:23 2016 +0200 Revert "convert MULTILINE constants to scoped enum" This reverts commit b5e352e5117fffaca8cfddde426079708a208258. GCC4.8 doesn't like the combination of a scoped enum and storing such a type in a bitfield. And it has a bug (still present in its current master) which prevents us from suppressing the warning nicely. Change-Id: I8c73e4c5175cfc43a1b8251ad85d262ad89c4f4d diff --git a/sc/inc/formularesult.hxx b/sc/inc/formularesult.hxx index 9150ab9..b19b001 100644 --- a/sc/inc/formularesult.hxx +++ b/sc/inc/formularesult.hxx @@ -47,9 +47,11 @@ struct FormulaResultValue and memory consumption. */ class ScFormulaResult { - enum class Multiline { - Unknown, False, True - }; + typedef unsigned char Multiline; + static const Multiline MULTILINE_UNKNOWN = 0; + static const Multiline MULTILINE_FALSE = 1; + static const Multiline MULTILINE_TRUE = 2; + // Clone token if the 16-bit only reference counter is nearing it's // capacity during fill or copy&paste, leaving 4k for temporary passing // around. (That should be enough for all times (TM) ;-) diff --git a/sc/source/core/tool/formularesult.cxx b/sc/source/core/tool/formularesult.cxx index 417777b..2c1b646 100644 --- a/sc/source/core/tool/formularesult.cxx +++ b/sc/source/core/tool/formularesult.cxx @@ -22,7 +22,7 @@ FormulaResultValue::FormulaResultValue( FormulaError nErr ) : meType(Error), mfV ScFormulaResult::ScFormulaResult() : mpToken(nullptr), mnError(FormulaError::NONE), mbToken(true), mbEmpty(false), mbEmptyDisplayedAsString(false), - meMultiline(Multiline::Unknown) {} + meMultiline(MULTILINE_UNKNOWN) {} ScFormulaResult::ScFormulaResult( const ScFormulaResult & r ) : mnError( r.mnError), mbToken( r.mbToken), @@ -56,7 +56,7 @@ ScFormulaResult::ScFormulaResult( const ScFormulaResult & r ) : ScFormulaResult::ScFormulaResult( const formula::FormulaToken* p ) : mnError(FormulaError::NONE), mbToken(false), mbEmpty(false), mbEmptyDisplayedAsString(false), - meMultiline(Multiline::Unknown) + meMultiline(MULTILINE_UNKNOWN) { SetToken( p); } @@ -72,7 +72,7 @@ void ScFormulaResult::ResetToDefaults() mnError = FormulaError::NONE; mbEmpty = false; mbEmptyDisplayedAsString = false; - meMultiline = Multiline::Unknown; + meMultiline = MULTILINE_UNKNOWN; } void ScFormulaResult::ResolveToken( const formula::FormulaToken * p ) @@ -93,20 +93,20 @@ void ScFormulaResult::ResolveToken( const formula::FormulaToken * p ) mbToken = false; // set in case mnError is 0 now, which shouldn't happen but ... mfValue = 0.0; - meMultiline = Multiline::False; + meMultiline = MULTILINE_FALSE; break; case formula::svEmptyCell: mbEmpty = true; mbEmptyDisplayedAsString = static_cast<const ScEmptyCellToken*>(p)->IsDisplayedAsString(); p->DecRef(); mbToken = false; - meMultiline = Multiline::False; + meMultiline = MULTILINE_FALSE; break; case formula::svDouble: mfValue = p->GetDouble(); p->DecRef(); mbToken = false; - meMultiline = Multiline::False; + meMultiline = MULTILINE_FALSE; break; default: mpToken = p; @@ -212,7 +212,7 @@ void ScFormulaResult::SetDouble( double f ) mpToken->DecRef(); mfValue = f; mbToken = false; - meMultiline = Multiline::False; + meMultiline = MULTILINE_FALSE; } } @@ -300,15 +300,15 @@ bool ScFormulaResult::IsValueNoError() const bool ScFormulaResult::IsMultiline() const { - if (meMultiline == Multiline::Unknown) + if (meMultiline == MULTILINE_UNKNOWN) { svl::SharedString aStr = GetString(); if (!aStr.isEmpty() && aStr.getString().indexOf('\n') != -1) - const_cast<ScFormulaResult*>(this)->meMultiline = Multiline::True; + const_cast<ScFormulaResult*>(this)->meMultiline = MULTILINE_TRUE; else - const_cast<ScFormulaResult*>(this)->meMultiline = Multiline::False; + const_cast<ScFormulaResult*>(this)->meMultiline = MULTILINE_FALSE; } - return meMultiline == Multiline::True; + return meMultiline == MULTILINE_TRUE; } bool ScFormulaResult::GetErrorOrDouble( FormulaError& rErr, double& rVal ) const @@ -513,7 +513,7 @@ void ScFormulaResult::SetHybridDouble( double f ) { mfValue = f; mbToken = false; - meMultiline = Multiline::False; + meMultiline = MULTILINE_FALSE; } } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits