[Libreoffice-commits] core.git: oox/source
Libreoffice Gerrit user
logerrit at kemper.freedesktop.org
Wed Mar 20 06:47:06 UTC 2019
oox/source/drawingml/customshapepresetdata.cxx | 23 ++++++++++-------------
1 file changed, 10 insertions(+), 13 deletions(-)
New commits:
commit c5db5deba2a798b361526d57f42a3ea60b1f00cf
Author: Matteo Casalin <matteo.casalin at yahoo.com>
AuthorDate: Fri Feb 22 19:43:32 2019 +0100
Commit: Matteo Casalin <matteo.casalin at yahoo.com>
CommitDate: Wed Mar 20 07:46:43 2019 +0100
Further reducion of OString copying by in-string comparison
Only copy string for SAL_WARN call, to not print unneeded information
Change-Id: I962ac8a7ed9bc8ee08d1ea31f4f13a0670cbdf3a
Reviewed-on: https://gerrit.libreoffice.org/69232
Tested-by: Jenkins
Reviewed-by: Matteo Casalin <matteo.casalin at yahoo.com>
diff --git a/oox/source/drawingml/customshapepresetdata.cxx b/oox/source/drawingml/customshapepresetdata.cxx
index 9c86b98ba259..043b25cd633b 100644
--- a/oox/source/drawingml/customshapepresetdata.cxx
+++ b/oox/source/drawingml/customshapepresetdata.cxx
@@ -275,32 +275,29 @@ void lcl_parseHandleRange(std::vector<beans::PropertyValue>& rHandle, const OStr
}
else if (rValue[i] == ',' && !bIgnore)
{
- OString aToken = rValue.copy(nStart, i - nStart);
static const char aExpectedPrefix[] = "Value = (any) { (com.sun.star.drawing.EnhancedCustomShapeParameter) { ";
- if (aToken.startsWith(aExpectedPrefix))
+ if (rValue.match(aExpectedPrefix, nStart))
{
drawing::EnhancedCustomShapeParameter aParameter;
- aToken = aToken.copy(strlen(aExpectedPrefix), aToken.getLength() - strlen(aExpectedPrefix) - strlen(" } }"));
+ sal_Int32 nIndex{ nStart + static_cast<sal_Int32>(strlen(aExpectedPrefix)) };
// We expect the following here: Value and Type
static const char aExpectedVPrefix[] = "Value = (any) { (long) ";
- assert(aToken.startsWith(aExpectedVPrefix));
- sal_Int32 nIndex = strlen(aExpectedVPrefix);
- aParameter.Value <<= aToken.getToken(0, '}', nIndex).toInt32();
+ assert(rValue.match(aExpectedVPrefix, nIndex));
+ nIndex += strlen(aExpectedVPrefix);
+ aParameter.Value <<= rValue.getToken(0, '}', nIndex).toInt32();
static const char aExpectedTPrefix[] = ", Type = (short) ";
- aToken = aToken.copy(nIndex);
- assert(aToken.startsWith(aExpectedTPrefix));
- nIndex = strlen(aExpectedTPrefix);
- aParameter.Type = static_cast<sal_Int16>(aToken.getToken(0, '}', nIndex).toInt32());
+ assert(nIndex>=0 && rValue.match(aExpectedTPrefix, nIndex));
+ nIndex += strlen(aExpectedTPrefix);
+ aParameter.Type = static_cast<sal_Int16>(rValue.getToken(0, '}', nIndex).toInt32());
beans::PropertyValue aPropertyValue;
aPropertyValue.Name = rName;
aPropertyValue.Value <<= aParameter;
rHandle.push_back(aPropertyValue);
-
}
- else if (!aToken.startsWith("Name =") && !aToken.startsWith("Handle ="))
- SAL_WARN("oox", "lcl_parseHandleRange: unexpected token: " << aToken);
+ else if (!rValue.match("Name =", nStart) && !rValue.match("Handle =", nStart))
+ SAL_WARN("oox", "lcl_parseHandleRange: unexpected token: " << rValue.copy(nStart, i - nStart));
nStart = i + strlen(", ");
}
}
More information about the Libreoffice-commits
mailing list