elide strlen cost in FastAttributeIter::toDouble
by inlining the underlying code to rtl_str_toDouble Change-Id: If379bf40472455be93ca4da6ece25a126bed0b73 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/140691 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
This commit is contained in:
@@ -25,6 +25,7 @@
|
|||||||
#include <com/sun/star/util/XCloneable.hpp>
|
#include <com/sun/star/util/XCloneable.hpp>
|
||||||
|
|
||||||
#include <cppuhelper/implbase.hxx>
|
#include <cppuhelper/implbase.hxx>
|
||||||
|
#include <rtl/math.h>
|
||||||
#include <sax/saxdllapi.h>
|
#include <sax/saxdllapi.h>
|
||||||
|
|
||||||
#include <string_view>
|
#include <string_view>
|
||||||
@@ -172,7 +173,9 @@ public:
|
|||||||
double toDouble() const
|
double toDouble() const
|
||||||
{
|
{
|
||||||
assert(mnIdx < mrList.maAttributeTokens.size());
|
assert(mnIdx < mrList.maAttributeTokens.size());
|
||||||
return rtl_str_toDouble(mrList.getFastAttributeValue(mnIdx));
|
const char* pStr = mrList.getFastAttributeValue(mnIdx);
|
||||||
|
sal_Int32 nLen = mrList.AttributeValueLength(mnIdx);
|
||||||
|
return rtl_math_stringToDouble(pStr, pStr + nLen, '.', 0, nullptr, nullptr);
|
||||||
}
|
}
|
||||||
bool toBoolean() const
|
bool toBoolean() const
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user