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

(8ac57ff6bc778519bb1edc4036ce79ab8f688e27)

#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 611 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 789 of file qbitarray.cpp.

◆ operator<<()

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

Definition at line 980 of file qbitarray.cpp.

References i.

◆ operator^()

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

Definition at line 841 of file qbitarray.cpp.

◆ operator|()

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

Definition at line 815 of file qbitarray.cpp.

◆ performBitwiseOperation() [1/2]

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

Definition at line 603 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 636 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 551 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 587 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 595 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 612 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: