Browse Source

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.
Andreas Kling 4 years ago
parent
commit
81c6d8e98e
4 changed files with 13 additions and 13 deletions
  1. 2 2
      AK/Forward.h
  2. 1 1
      AK/NonnullOwnPtrVector.h
  3. 9 9
      AK/NonnullPtrVector.h
  4. 1 1
      AK/NonnullRefPtrVector.h

+ 2 - 2
AK/Forward.h

@@ -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>

+ 1 - 1
AK/NonnullOwnPtrVector.h

@@ -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> {
 };
 };
 
 

+ 9 - 9
AK/NonnullPtrVector.h

@@ -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 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 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;
 };
 };
 
 
 }
 }

+ 1 - 1
AK/NonnullRefPtrVector.h

@@ -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> {
 };
 };