Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
qbitarray.cpp File Reference

(2606c0966669fe76300d4c818f8c05e778aacd23)

#include "qbitarray.h"
#include <qalgorithms.h>
#include <qdatastream.h>
#include <qdebug.h>
#include <qendian.h>
#include <limits>
#include <string.h>
+ Include dependency graph for qbitarray.cpp:

Go to the source code of this file.

Enumerations

enum  { InCopy , InPlace }
 

Functions

static constexpr qsizetype storage_size (qsizetype size)
 
static constexpr qsizetype allocation_size (qsizetype size)
 
static void adjust_head_and_tail (char *data, qsizetype storageSize, qsizetype logicalSize)
 
static QBitArray sizedForOverwrite (const QBitArray &a1, const QBitArray &a2)
 
template<typename BitwiseOp >
static Q_NEVER_INLINE QBitArrayperformBitwiseOperationHelper (QBitArray &out, const QBitArray &a1, const QBitArray &a2, BitwiseOp op)
 
template<typename BitwiseOp >
static Q_NEVER_INLINE QBitArrayperformBitwiseOperationInCopy (QBitArray &self, const QBitArray &other, BitwiseOp op)
 
template<typename BitwiseOp >
static Q_NEVER_INLINE QBitArrayperformBitwiseOperationInPlace (QBitArray &self, const QBitArray &other, BitwiseOp op)
 
template<typename BitwiseOp >
static QBitArrayperformBitwiseOperation (QBitArray &self, const QBitArray &other, BitwiseOp op)
 
static auto prepareForBitwiseOperation (QBitArray &self, QBitArray &other)
 
template<typename BitwiseOp >
static QBitArrayperformBitwiseOperation (QBitArray &self, QBitArray &other, BitwiseOp op)
 
QBitArray operator& (const QBitArray &a1, const QBitArray &a2)
 
QBitArray operator| (const QBitArray &a1, const QBitArray &a2)
 
QBitArray operator^ (const QBitArray &a1, const QBitArray &a2)
 
QDebug operator<< (QDebug dbg, const QBitArray &array)
 

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
InCopy 
InPlace 

Definition at line 606 of file qbitarray.cpp.

Function Documentation

◆ adjust_head_and_tail()

static void adjust_head_and_tail ( char * data,
qsizetype storageSize,
qsizetype logicalSize )
static

Definition at line 125 of file qbitarray.cpp.

Referenced by QBitArray::QBitArray(), QBitArray::fromBits(), and QBitArray::resize().

+ Here is the caller graph for this function:

◆ allocation_size()

static constexpr qsizetype allocation_size ( qsizetype size)
staticconstexpr

Definition at line 120 of file qbitarray.cpp.

References storage_size().

Referenced by QBitArray::fromBits(), and QBitArray::resize().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ operator&()

QBitArray operator& ( const QBitArray & a1,
const QBitArray & a2 )

Definition at line 784 of file qbitarray.cpp.

◆ operator<<()

QDebug operator<< ( QDebug dbg,
const QBitArray & array )

Definition at line 975 of file qbitarray.cpp.

References i.

◆ operator^()

QBitArray operator^ ( const QBitArray & a1,
const QBitArray & a2 )

Definition at line 836 of file qbitarray.cpp.

◆ operator|()

QBitArray operator| ( const QBitArray & a1,
const QBitArray & a2 )

Definition at line 810 of file qbitarray.cpp.

◆ performBitwiseOperation() [1/2]

template<typename BitwiseOp >
static QBitArray & performBitwiseOperation ( QBitArray & self,
const QBitArray & other,
BitwiseOp op )
static

Definition at line 598 of file qbitarray.cpp.

References QString::data_ptr(), QArrayDataPointer< T >::needsDetach(), other(), performBitwiseOperationInCopy(), and performBitwiseOperationInPlace().

Referenced by QBitArray::operator&=(), QBitArray::operator&=(), QBitArray::operator^=(), QBitArray::operator^=(), QBitArray::operator|=(), and QBitArray::operator|=().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ performBitwiseOperation() [2/2]

template<typename BitwiseOp >
static QBitArray & performBitwiseOperation ( QBitArray & self,
QBitArray & other,
BitwiseOp op )
static

Definition at line 631 of file qbitarray.cpp.

References InCopy, other(), performBitwiseOperationInCopy(), performBitwiseOperationInPlace(), and prepareForBitwiseOperation().

+ Here is the call graph for this function:

◆ performBitwiseOperationHelper()

template<typename BitwiseOp >
static Q_NEVER_INLINE QBitArray & performBitwiseOperationHelper ( QBitArray & out,
const QBitArray & a1,
const QBitArray & a2,
BitwiseOp op )
static

Definition at line 546 of file qbitarray.cpp.

References a1, a2, d1, d2, i, out, p1, p2, Q_ASSERT, and qMax().

Referenced by performBitwiseOperationInCopy(), and performBitwiseOperationInPlace().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ performBitwiseOperationInCopy()

template<typename BitwiseOp >
static Q_NEVER_INLINE QBitArray & performBitwiseOperationInCopy ( QBitArray & self,
const QBitArray & other,
BitwiseOp op )
static

Definition at line 582 of file qbitarray.cpp.

References other(), performBitwiseOperationHelper(), and sizedForOverwrite().

Referenced by performBitwiseOperation(), and performBitwiseOperation().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ performBitwiseOperationInPlace()

template<typename BitwiseOp >
static Q_NEVER_INLINE QBitArray & performBitwiseOperationInPlace ( QBitArray & self,
const QBitArray & other,
BitwiseOp op )
static

Definition at line 590 of file qbitarray.cpp.

References other(), performBitwiseOperationHelper(), QString::resize(), and QString::size().

Referenced by performBitwiseOperation(), and performBitwiseOperation().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ prepareForBitwiseOperation()

static auto prepareForBitwiseOperation ( QBitArray & self,
QBitArray & other )
static

Definition at line 607 of file qbitarray.cpp.

References d1, d2, QString::data_ptr(), InCopy, InPlace, other(), swap(), and QString::swap().

Referenced by performBitwiseOperation().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ sizedForOverwrite()

static QBitArray sizedForOverwrite ( const QBitArray & a1,
const QBitArray & a2 )
static

Definition at line 522 of file qbitarray.cpp.

References a1, a2, d1, d2, QArrayDataPointer< T >::ptr, qMax(), and qMin().

Referenced by performBitwiseOperationInCopy().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ storage_size()

static constexpr qsizetype storage_size ( qsizetype size)
staticconstexpr

Definition at line 114 of file qbitarray.cpp.

Referenced by allocation_size().

+ Here is the caller graph for this function: