diff options
author | Thiago Macieira <thiago.macieira@intel.com> | 2023-11-08 09:53:03 -0800 |
---|---|---|
committer | Thiago Macieira <thiago.macieira@intel.com> | 2023-12-12 22:59:23 -0800 |
commit | 54c373faa4f9582fd09a802727821fd544a7b2c5 (patch) | |
tree | e3474743026adee43c3745d1f7e439e51a4788a8 /src/corelib/tools/qbitarray.h | |
parent | ce5aaf1e434b6e2e482347b40524edeccecb1665 (diff) |
QBitArray: improve memory allocation in the binary bitwise operators
Instead of creating a temporary copy of one of the two sides (which will
share QByteArray), create one with the correct target size such that it
is already detached.
Drive-by move them to hidden friends.
Pick-to: 6.7
Change-Id: I85b3fc2dd45c4693be13fffd1795b74eeaf3be71
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
Diffstat (limited to 'src/corelib/tools/qbitarray.h')
-rw-r--r-- | src/corelib/tools/qbitarray.h | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/src/corelib/tools/qbitarray.h b/src/corelib/tools/qbitarray.h index 01afe29eaa..f38ee3ddcd 100644 --- a/src/corelib/tools/qbitarray.h +++ b/src/corelib/tools/qbitarray.h @@ -11,6 +11,10 @@ QT_BEGIN_NAMESPACE class QBitRef; class Q_CORE_EXPORT QBitArray { + Q_CORE_EXPORT friend QBitArray operator&(const QBitArray &a1, const QBitArray &a2); + Q_CORE_EXPORT friend QBitArray operator|(const QBitArray &a1, const QBitArray &a2); + Q_CORE_EXPORT friend QBitArray operator^(const QBitArray &a1, const QBitArray &a2); + #ifndef QT_NO_DATASTREAM friend Q_CORE_EXPORT QDataStream &operator<<(QDataStream &, const QBitArray &); friend Q_CORE_EXPORT QDataStream &operator>>(QDataStream &, QBitArray &); @@ -106,12 +110,6 @@ public: inline const DataPtr &data_ptr() const { return d.data_ptr(); } }; - -Q_CORE_EXPORT QBitArray operator&(const QBitArray &, const QBitArray &); -Q_CORE_EXPORT QBitArray operator|(const QBitArray &, const QBitArray &); -Q_CORE_EXPORT QBitArray operator^(const QBitArray &, const QBitArray &); - - class Q_CORE_EXPORT QBitRef { private: |