1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 09:08:12 +00:00

AK: Make Nonnull*PtrVector use size_t for indexes

This was weird. It turns out these class were using int indexes and
sizes despite being derived from Vector which uses size_t.

Make the universe right again by using size_t here as well.
This commit is contained in:
Andreas Kling 2021-02-20 17:39:58 +01:00
parent 46efd2f741
commit 81c6d8e98e
4 changed files with 13 additions and 13 deletions

View file

@ -108,10 +108,10 @@ class NonnullRefPtr;
template<typename T> template<typename T>
class NonnullOwnPtr; class NonnullOwnPtr;
template<typename T, int inline_capacity = 0> template<typename T, size_t inline_capacity = 0>
class NonnullRefPtrVector; class NonnullRefPtrVector;
template<typename T, int inline_capacity = 0> template<typename T, size_t inline_capacity = 0>
class NonnullOwnPtrVector; class NonnullOwnPtrVector;
template<typename T> template<typename T>

View file

@ -31,7 +31,7 @@
namespace AK { namespace AK {
template<typename T, int inline_capacity> template<typename T, size_t inline_capacity>
class NonnullOwnPtrVector : public NonnullPtrVector<NonnullOwnPtr<T>, inline_capacity> { class NonnullOwnPtrVector : public NonnullPtrVector<NonnullOwnPtr<T>, inline_capacity> {
}; };

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018-2020, Andreas Kling <kling@serenityos.org> * Copyright (c) 2018-2021, Andreas Kling <kling@serenityos.org>
* All rights reserved. * All rights reserved.
* *
* Redistribution and use in source and binary forms, with or without * Redistribution and use in source and binary forms, with or without
@ -30,7 +30,7 @@
namespace AK { namespace AK {
template<typename PtrType, int inline_capacity = 0> template<typename PtrType, size_t inline_capacity = 0>
class NonnullPtrVector : public Vector<PtrType, inline_capacity> { class NonnullPtrVector : public Vector<PtrType, inline_capacity> {
using T = typename PtrType::ElementType; using T = typename PtrType::ElementType;
using Base = Vector<PtrType, inline_capacity>; using Base = Vector<PtrType, inline_capacity>;
@ -60,13 +60,13 @@ public:
ALWAYS_INLINE constexpr ConstIterator end() const { return ConstIterator::end(*this); } ALWAYS_INLINE constexpr ConstIterator end() const { return ConstIterator::end(*this); }
ALWAYS_INLINE constexpr Iterator end() { return Iterator::end(*this); } ALWAYS_INLINE constexpr Iterator end() { return Iterator::end(*this); }
ALWAYS_INLINE PtrType& ptr_at(int index) { return Base::at(index); } ALWAYS_INLINE PtrType& ptr_at(size_t index) { return Base::at(index); }
ALWAYS_INLINE const PtrType& ptr_at(int index) const { return Base::at(index); } ALWAYS_INLINE const PtrType& ptr_at(size_t index) const { return Base::at(index); }
ALWAYS_INLINE T& at(int index) { return *Base::at(index); } ALWAYS_INLINE T& at(size_t index) { return *Base::at(index); }
ALWAYS_INLINE const T& at(int index) const { return *Base::at(index); } ALWAYS_INLINE const T& at(size_t index) const { return *Base::at(index); }
ALWAYS_INLINE T& operator[](int index) { return at(index); } ALWAYS_INLINE T& operator[](size_t index) { return at(index); }
ALWAYS_INLINE const T& operator[](int index) const { return at(index); } ALWAYS_INLINE const T& operator[](size_t index) const { return at(index); }
ALWAYS_INLINE T& first() { return at(0); } ALWAYS_INLINE T& first() { return at(0); }
ALWAYS_INLINE const T& first() const { return at(0); } ALWAYS_INLINE const T& first() const { return at(0); }
ALWAYS_INLINE T& last() { return at(size() - 1); } ALWAYS_INLINE T& last() { return at(size() - 1); }
@ -76,7 +76,7 @@ private:
// NOTE: You can't use resize() on a NonnullFooPtrVector since making the vector // NOTE: You can't use resize() on a NonnullFooPtrVector since making the vector
// bigger would require being able to default-construct NonnullFooPtrs. // bigger would require being able to default-construct NonnullFooPtrs.
// Instead, use shrink(new_size). // Instead, use shrink(new_size).
void resize(int) = delete; void resize(size_t) = delete;
}; };
} }

View file

@ -31,7 +31,7 @@
namespace AK { namespace AK {
template<typename T, int inline_capacity> template<typename T, size_t inline_capacity>
class NonnullRefPtrVector : public NonnullPtrVector<NonnullRefPtr<T>, inline_capacity> { class NonnullRefPtrVector : public NonnullPtrVector<NonnullRefPtr<T>, inline_capacity> {
}; };