From 60af93847e365fc00ccc4bcf61bb90ef6da1f0b2 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.9 6.8 Change-Id: Ic69527bdaa5ce95bf937295366b94366e2ace933 Reviewed-by: Edward Welbourne Reviewed-by: Ahmad Samir --- 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 bc449e44801..04c54185224 100644 --- a/src/corelib/text/qbytearray.cpp +++ b/src/corelib/text/qbytearray.cpp @@ -2533,6 +2533,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;