path: root/src/printsupport/widgets
diff options
authorMarc Mutz <>2022-01-21 18:06:24 +0100
committerMarc Mutz <>2022-01-23 09:48:28 +0100
commitcce7e35253aa63191f0211b509784b1dc96d49e5 (patch)
tree6e8067597ec1e61248edf16b53a67254dfd7eca5 /src/printsupport/widgets
parent3d3558dc8f0a1885f416b4650037364f4ef11bd4 (diff)
Q(Static)ByteArrayMatcher: manage indexIn() overloads
Unlike QString and QStringView, QByteArrayView and QByteArray don't overload well. Solve the overload issue the usual way: by making the QByteArray one a Q_WEAK_OVERLOAD. This is trivial for QStaticByteArrayMatcher, which isn't exported, but require QT_REMOVED_SINCE magic for QByteArrayMatcher, which is. The additional const char* overload has shielded us from the worst fall-out so far, it seems, but it makes for a truly horrible overload set: matcher.indexIn(str, 3); Q: Is the 3 here the length of the haystack or the value of the from parameter? A: It depends on decltype(str)! If the (const char*, qsizetype, qsizetype=0) overload is the better match, then 3 limits the haystack's length. If, otoh, the (QByteArray(View), qsizetype) overload is the better match, then it's the value of the from parameter. As if this wasn't bad enough, QByteArray implcitly converts to const char* by default! A follow-up patch will therefore deprecate the (ptr, size) overloads, so we de-inline the QByteArrayView ones to avoid having to touch the implementation once more. Found during 6.3 API review. Pick-to: 6.3 Change-Id: I9640e0bdd298d651511adebcc85f314db9221d34 Reviewed-by: Thiago Macieira <> Reviewed-by: Qt CI Bot <>
Diffstat (limited to 'src/printsupport/widgets')
0 files changed, 0 insertions, 0 deletions