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>
class NonnullOwnPtr;
template<typename T, int inline_capacity = 0>
template<typename T, size_t inline_capacity = 0>
class NonnullRefPtrVector;
template<typename T, int inline_capacity = 0>
template<typename T, size_t inline_capacity = 0>
class NonnullOwnPtrVector;
template<typename T>

View file

@ -31,7 +31,7 @@
namespace AK {
template<typename T, int inline_capacity>
template<typename T, size_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.
*
* Redistribution and use in source and binary forms, with or without
@ -30,7 +30,7 @@
namespace AK {
template<typename PtrType, int inline_capacity = 0>
template<typename PtrType, size_t inline_capacity = 0>
class NonnullPtrVector : public Vector<PtrType, inline_capacity> {
using T = typename PtrType::ElementType;
using Base = Vector<PtrType, inline_capacity>;
@ -60,13 +60,13 @@ public:
ALWAYS_INLINE constexpr ConstIterator end() const { return ConstIterator::end(*this); }
ALWAYS_INLINE constexpr Iterator end() { return Iterator::end(*this); }
ALWAYS_INLINE PtrType& ptr_at(int index) { return Base::at(index); }
ALWAYS_INLINE const PtrType& ptr_at(int index) const { return Base::at(index); }
ALWAYS_INLINE PtrType& ptr_at(size_t index) { 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 const T& at(int index) const { return *Base::at(index); }
ALWAYS_INLINE T& operator[](int index) { return at(index); }
ALWAYS_INLINE const T& operator[](int index) const { return at(index); }
ALWAYS_INLINE T& at(size_t index) { return *Base::at(index); }
ALWAYS_INLINE const T& at(size_t index) const { return *Base::at(index); }
ALWAYS_INLINE T& operator[](size_t index) { return at(index); }
ALWAYS_INLINE const T& operator[](size_t index) const { return at(index); }
ALWAYS_INLINE T& first() { return at(0); }
ALWAYS_INLINE const T& first() const { return at(0); }
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
// bigger would require being able to default-construct NonnullFooPtrs.
// Instead, use shrink(new_size).
void resize(int) = delete;
void resize(size_t) = delete;
};
}

View file

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