Add a couple of noexcept

Change-Id: I993da2094482092540388ee72be3262bac94fad7
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This commit is contained in:
Lars Knoll 2019-12-03 15:22:00 +01:00
parent fbce2e58e6
commit c129362b4d
2 changed files with 15 additions and 15 deletions

View File

@ -64,30 +64,30 @@ struct Q_CORE_EXPORT QArrayData
uint flags; uint flags;
uint alloc; uint alloc;
inline size_t allocatedCapacity() inline size_t allocatedCapacity() noexcept
{ {
return alloc; return alloc;
} }
inline size_t constAllocatedCapacity() const inline size_t constAllocatedCapacity() const noexcept
{ {
return alloc; return alloc;
} }
/// Returns true if sharing took place /// Returns true if sharing took place
bool ref() bool ref() noexcept
{ {
ref_.ref(); ref_.ref();
return true; return true;
} }
/// Returns false if deallocation is necessary /// Returns false if deallocation is necessary
bool deref() bool deref() noexcept
{ {
return ref_.deref(); return ref_.deref();
} }
bool isShared() const bool isShared() const noexcept
{ {
return ref_.loadRelaxed() != 1; return ref_.loadRelaxed() != 1;
} }
@ -95,19 +95,19 @@ struct Q_CORE_EXPORT QArrayData
// Returns true if a detach is necessary before modifying the data // Returns true if a detach is necessary before modifying the data
// This method is intentionally not const: if you want to know whether // This method is intentionally not const: if you want to know whether
// detaching is necessary, you should be in a non-const function already // detaching is necessary, you should be in a non-const function already
bool needsDetach() bool needsDetach() const noexcept
{ {
return ref_.loadRelaxed() > 1; return ref_.loadRelaxed() > 1;
} }
size_t detachCapacity(size_t newSize) const size_t detachCapacity(size_t newSize) const noexcept
{ {
if (flags & CapacityReserved && newSize < constAllocatedCapacity()) if (flags & CapacityReserved && newSize < constAllocatedCapacity())
return constAllocatedCapacity(); return constAllocatedCapacity();
return newSize; return newSize;
} }
ArrayOptions detachFlags() const ArrayOptions detachFlags() const noexcept
{ {
ArrayOptions result = DefaultAllocationFlags; ArrayOptions result = DefaultAllocationFlags;
if (flags & CapacityReserved) if (flags & CapacityReserved)
@ -160,7 +160,7 @@ struct QTypedArrayData
return qMakePair(static_cast<QTypedArrayData *>(pair.first), static_cast<T *>(pair.second)); return qMakePair(static_cast<QTypedArrayData *>(pair.first), static_cast<T *>(pair.second));
} }
static void deallocate(QArrayData *data) static void deallocate(QArrayData *data) noexcept
{ {
static_assert(sizeof(QTypedArrayData) == sizeof(QArrayData)); static_assert(sizeof(QTypedArrayData) == sizeof(QArrayData));
QArrayData::deallocate(data, sizeof(T), alignof(AlignmentDummy)); QArrayData::deallocate(data, sizeof(T), alignof(AlignmentDummy));

View File

@ -75,12 +75,12 @@ public:
{ {
} }
explicit QArrayDataPointer(QPair<QTypedArrayData<T> *, T *> adata, size_t n = 0) explicit QArrayDataPointer(QPair<QTypedArrayData<T> *, T *> adata, size_t n = 0) noexcept
: d(adata.first), ptr(adata.second), size(int(n)) : d(adata.first), ptr(adata.second), size(int(n))
{ {
} }
static QArrayDataPointer fromRawData(const T *rawData, size_t length) static QArrayDataPointer fromRawData(const T *rawData, size_t length) noexcept
{ {
Q_ASSERT(rawData || !length); Q_ASSERT(rawData || !length);
return { nullptr, const_cast<T *>(rawData), length }; return { nullptr, const_cast<T *>(rawData), length };
@ -157,7 +157,7 @@ public:
qSwap(size, other.size); qSwap(size, other.size);
} }
void clear() Q_DECL_NOEXCEPT_EXPR(std::is_nothrow_destructible<T>::value) void clear() noexcept(std::is_nothrow_destructible<T>::value)
{ {
QArrayDataPointer tmp; QArrayDataPointer tmp;
swap(tmp); swap(tmp);
@ -187,11 +187,11 @@ public:
bool needsDetach() const noexcept { return !d || d->needsDetach(); } bool needsDetach() const noexcept { return !d || d->needsDetach(); }
size_t detachCapacity(size_t newSize) const noexcept { return d ? d->detachCapacity(newSize) : newSize; } size_t detachCapacity(size_t newSize) const noexcept { return d ? d->detachCapacity(newSize) : newSize; }
const typename Data::ArrayOptions flags() const noexcept { return d ? typename Data::ArrayOption(d->flags) : Data::DefaultAllocationFlags; } const typename Data::ArrayOptions flags() const noexcept { return d ? typename Data::ArrayOption(d->flags) : Data::DefaultAllocationFlags; }
void setFlag(typename Data::ArrayOptions f) { Q_ASSERT(d); d->flags |= f; } void setFlag(typename Data::ArrayOptions f) noexcept { Q_ASSERT(d); d->flags |= f; }
void clearFlag(typename Data::ArrayOptions f) { Q_ASSERT(d); d->flags &= ~f; } void clearFlag(typename Data::ArrayOptions f) noexcept { Q_ASSERT(d); d->flags &= ~f; }
typename Data::ArrayOptions detachFlags() const noexcept { return d ? d->detachFlags() : Data::DefaultAllocationFlags; } typename Data::ArrayOptions detachFlags() const noexcept { return d ? d->detachFlags() : Data::DefaultAllocationFlags; }
Data *d_ptr() { return d; } Data *d_ptr() noexcept { return d; }
private: private:
Q_REQUIRED_RESULT QPair<Data *, T *> clone(QArrayData::ArrayOptions options) const Q_REQUIRED_RESULT QPair<Data *, T *> clone(QArrayData::ArrayOptions options) const