[PATCH] use of aState instead of m_aStates.top in popState
Maxime de Roucy (via Code Review)
gerrit at gerrit.libreoffice.org
Wed Mar 27 04:15:26 PDT 2013
Hi,
I have submitted a patch for review:
https://gerrit.libreoffice.org/3085
To pull it, you can do:
git pull ssh://gerrit.libreoffice.org:29418/core refs/changes/85/3085/1
use of aState instead of m_aStates.top in popState
Change-Id: I6814e48a92a1b24823c6884a151aa6a139410ff2
---
M writerfilter/source/rtftok/rtfdocumentimpl.cxx
1 file changed, 21 insertions(+), 23 deletions(-)
diff --git a/writerfilter/source/rtftok/rtfdocumentimpl.cxx b/writerfilter/source/rtftok/rtfdocumentimpl.cxx
index e732688..d4896ef 100644
--- a/writerfilter/source/rtftok/rtfdocumentimpl.cxx
+++ b/writerfilter/source/rtftok/rtfdocumentimpl.cxx
@@ -209,10 +209,10 @@
return NULL;
}
-static util::DateTime lcl_getDateTime(std::stack<RTFParserState>& aStates)
+static util::DateTime lcl_getDateTime(RTFParserState& aState)
{
- return util::DateTime(0 /*100sec*/, 0 /*sec*/, aStates.top().nMinute, aStates.top().nHour,
- aStates.top().nDay, aStates.top().nMonth, aStates.top().nYear);
+ return util::DateTime(0 /*100sec*/, 0 /*sec*/, aState.nMinute, aState.nHour,
+ aState.nDay, aState.nMonth, aState.nYear);
}
static void lcl_DestinationToMath(OUStringBuffer& rDestinationText, oox::formulaimport::XmlStreamBuilder& rMathBuffer)
@@ -3821,12 +3821,12 @@
sal_Int32 nReplaces = 1;
for (int i = 0; i < aOrig.getLength(); i++)
{
- if (std::find(m_aStates.top().aLevelNumbers.begin(), m_aStates.top().aLevelNumbers.end(), i+1)
- != m_aStates.top().aLevelNumbers.end())
+ if (std::find(aState.aLevelNumbers.begin(), aState.aLevelNumbers.end(), i+1)
+ != aState.aLevelNumbers.end())
{
aBuf.append(sal_Unicode('%'));
// '1.1.1' -> '%1.%2.%3', but '1.' (with '2.' prefix omitted) is %2.
- aBuf.append(sal_Int32(nReplaces++ + m_aStates.top().nListLevelNum + 1 - m_aStates.top().aLevelNumbers.size()));
+ aBuf.append(sal_Int32(nReplaces++ + aState.nListLevelNum + 1 - aState.aLevelNumbers.size()));
}
else
aBuf.append(aOrig.copy(i, 1));
@@ -3836,14 +3836,11 @@
}
break;
case DESTINATION_SHAPEPROPERTYNAME:
+ aState.aShape.aProperties.push_back(make_pair(m_aStates.top().aDestinationText.makeStringAndClear(), OUString()));
+ break;
case DESTINATION_SHAPEPROPERTYVALUE:
- case DESTINATION_SHAPEPROPERTY:
- {
- if (m_aStates.top().nDestinationState == DESTINATION_SHAPEPROPERTYNAME)
- aState.aShape.aProperties.push_back(make_pair(m_aStates.top().aDestinationText.makeStringAndClear(), OUString()));
- else if (m_aStates.top().nDestinationState == DESTINATION_SHAPEPROPERTYVALUE && aState.aShape.aProperties.size())
- aState.aShape.aProperties.back().second = m_aStates.top().aDestinationText.makeStringAndClear();
- }
+ if (aState.aShape.aProperties.size())
+ aState.aShape.aProperties.back().second = m_aStates.top().aDestinationText.makeStringAndClear();
break;
case DESTINATION_PICPROP:
case DESTINATION_SHAPEINSTRUCTION:
@@ -3878,7 +3875,7 @@
break;
case DESTINATION_DATAFIELD:
{
- OString aStr = OUStringToOString(m_aStates.top().aDestinationText.makeStringAndClear(), m_aStates.top().nCurrentEncoding);
+ OString aStr = OUStringToOString(m_aStates.top().aDestinationText.makeStringAndClear(), aState.nCurrentEncoding);
// decode hex dump
OStringBuffer aBuf;
const char *str = aStr.getStr();
@@ -3915,9 +3912,9 @@
nLength = aStr.toChar();
aStr = aStr.copy(1);
OString aDefaultText = aStr.copy(0, nLength);
- RTFValue::Pointer_t pNValue(new RTFValue(OStringToOUString(aName, m_aStates.top().nCurrentEncoding)));
+ RTFValue::Pointer_t pNValue(new RTFValue(OStringToOUString(aName, aState.nCurrentEncoding)));
m_aFormfieldSprms.set(NS_ooxml::LN_CT_FFData_name, pNValue);
- RTFValue::Pointer_t pDValue(new RTFValue(OStringToOUString(aDefaultText, m_aStates.top().nCurrentEncoding)));
+ RTFValue::Pointer_t pDValue(new RTFValue(OStringToOUString(aDefaultText, aState.nCurrentEncoding)));
m_aFormfieldSprms.set(NS_ooxml::LN_CT_FFTextInput_default, pDValue);
m_bFormField = false;
@@ -3925,15 +3922,15 @@
break;
case DESTINATION_CREATIONTIME:
if (m_xDocumentProperties.is())
- m_xDocumentProperties->setCreationDate(lcl_getDateTime(m_aStates));
+ m_xDocumentProperties->setCreationDate(lcl_getDateTime(aState));
break;
case DESTINATION_REVISIONTIME:
if (m_xDocumentProperties.is())
- m_xDocumentProperties->setModificationDate(lcl_getDateTime(m_aStates));
+ m_xDocumentProperties->setModificationDate(lcl_getDateTime(aState));
break;
case DESTINATION_PRINTTIME:
if (m_xDocumentProperties.is())
- m_xDocumentProperties->setPrintDate(lcl_getDateTime(m_aStates));
+ m_xDocumentProperties->setPrintDate(lcl_getDateTime(aState));
break;
case DESTINATION_AUTHOR:
if (m_xDocumentProperties.is())
@@ -3958,7 +3955,7 @@
case DESTINATION_OPERATOR:
case DESTINATION_COMPANY:
{
- OUString aName = m_aStates.top().nDestinationState == DESTINATION_OPERATOR ? OUString("Operator") : OUString("Company");
+ OUString aName = aState.nDestinationState == DESTINATION_OPERATOR ? OUString("Operator") : OUString("Company");
if (m_xDocumentProperties.is())
{
uno::Reference<beans::XPropertyContainer> xUserDefinedProperties = m_xDocumentProperties->getUserDefinedProperties();
@@ -4052,7 +4049,7 @@
case DESTINATION_ANNOTATIONDATE:
{
OUString aStr(OStringToOUString(lcl_DTTM22OString(m_aStates.top().aDestinationText.makeStringAndClear().toInt32()),
- m_aStates.top().nCurrentEncoding));
+ aState.nCurrentEncoding));
RTFValue::Pointer_t pValue(new RTFValue(aStr));
RTFSprms aAnnAttributes;
aAnnAttributes.set(NS_ooxml::LN_CT_TrackChange_date, pValue);
@@ -4110,8 +4107,9 @@
}
break;
case DESTINATION_SHAPE:
- if (m_aStates.top().aFrame.inFrame())
+ if (aState.aFrame.inFrame())
{
+ // parBreak modify m_aStates.top() so we can't apply resetFrame directly on aState
m_aStates.top().resetFrame();
parBreak();
// Save this state for later use, so we only reset frame status only for the first shape inside a frame.
@@ -4344,7 +4342,7 @@
}
// See if we need to end a track change
- RTFValue::Pointer_t pTrackchange = m_aStates.top().aCharacterSprms.find(NS_ooxml::LN_trackchange);
+ RTFValue::Pointer_t pTrackchange = aState.aCharacterSprms.find(NS_ooxml::LN_trackchange);
if (pTrackchange.get())
{
RTFSprms aTCAttributes;
--
To view, visit https://gerrit.libreoffice.org/3085
To unsubscribe, visit https://gerrit.libreoffice.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I6814e48a92a1b24823c6884a151aa6a139410ff2
Gerrit-PatchSet: 1
Gerrit-Project: core
Gerrit-Branch: master
Gerrit-Owner: Maxime de Roucy <mderoucy at linagora.com>
More information about the LibreOffice
mailing list