From fc88dd52a42da682cbd360916be7c9f94a69b72c Mon Sep 17 00:00:00 2001 From: David Faure Date: Thu, 25 Oct 2018 11:07:58 +0200 Subject: QByteArrayList: add indexOf(const char*) overload This avoids memory allocation and data copying in e.g. QObject::property(). Detected by heaptrack's "Temporary allocations" counter in an application using the breeze widget style (many animations). Change-Id: Iabdb58a3e504cb121cce906ef707b0722de89df6 Reviewed-by: Thiago Macieira --- src/corelib/tools/qbytearraylist.h | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src/corelib/tools/qbytearraylist.h') diff --git a/src/corelib/tools/qbytearraylist.h b/src/corelib/tools/qbytearraylist.h index be94bc1d40..d69e8bb54b 100644 --- a/src/corelib/tools/qbytearraylist.h +++ b/src/corelib/tools/qbytearraylist.h @@ -55,6 +55,7 @@ typedef QList QByteArrayList; namespace QtPrivate { QByteArray Q_CORE_EXPORT QByteArrayList_join(const QByteArrayList *that, const char *separator, int separatorLength); + int Q_CORE_EXPORT QByteArrayList_indexOf(const QByteArrayList *that, const char *needle, int from); } #endif @@ -76,6 +77,9 @@ public: inline QByteArray join(char sep) const { return QtPrivate::QByteArrayList_join(self(), &sep, 1); } + inline int indexOf(const char *needle, int from = 0) const + { return QtPrivate::QByteArrayList_indexOf(self(), needle, from); } + private: typedef QList Self; Self *self() { return static_cast(this); } -- cgit v1.2.3