From 72f41f8756ce10432a5ed3ac53b043f0ad20ea6c Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Thu, 13 Feb 2025 14:45:18 +0100 Subject: [PATCH] QByteArray: delegate to replace(char,char) from replace(QBAV,QBAV) Don't go and build (among other things) a Boyer-Moore table for the trivially optimizable replacement of single characters with single characters. Just call the existing replace(char, char) overload. Pick-to: 6.8 Change-Id: Ic69527bdaa5ce95bf937295366b94366e2ace933 Reviewed-by: Edward Welbourne Reviewed-by: Ahmad Samir (cherry picked from commit 60af93847e365fc00ccc4bcf61bb90ef6da1f0b2) Reviewed-by: Qt Cherry-pick Bot --- src/corelib/text/qbytearray.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/corelib/text/qbytearray.cpp b/src/corelib/text/qbytearray.cpp index e07183a7c9f..23d1b5abb10 100644 --- a/src/corelib/text/qbytearray.cpp +++ b/src/corelib/text/qbytearray.cpp @@ -2508,6 +2508,9 @@ QByteArray &QByteArray::replace(QByteArrayView before, QByteArrayView after) const char *a = after.data(); qsizetype asize = after.size(); + if (bsize == 1 && asize == 1) + return replace(*b, *a); // use the fast char-char algorithm + if (isNull() || (b == a && bsize == asize)) return *this;