From ceec1a7d38d4c8941dbf537b85bd50f0030ffbec Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Tue, 25 Feb 2020 14:49:47 +0100 Subject: [PATCH] AK: Make Vector use size_t for its size and capacity --- AK/FileSystemPath.cpp | 8 +- AK/Forward.h | 2 +- AK/URL.cpp | 2 +- AK/Vector.h | 103 +++++++++--------- Applications/Browser/History.h | 2 +- .../DisplayProperties/DisplayProperties.cpp | 6 +- Applications/FileManager/DirectoryView.h | 2 +- Applications/FileManager/FileUtils.cpp | 2 +- Applications/Help/History.h | 2 +- Applications/Help/ManualModel.cpp | 2 +- Applications/IRCClient/IRCClient.cpp | 6 +- Applications/IRCClient/IRCClient.h | 6 +- Applications/Piano/AudioEngine.cpp | 4 +- Applications/Piano/SamplerWidget.cpp | 2 +- Applications/SoundPlayer/PlaybackManager.h | 4 +- Applications/SystemMenu/PowerDialog.cpp | 4 +- Applications/Welcome/TextWidget.cpp | 2 +- DevTools/HackStudio/Project.cpp | 4 +- DevTools/HackStudio/TerminalWrapper.cpp | 2 +- DevTools/HackStudio/main.cpp | 2 +- DevTools/IPCCompiler/main.cpp | 12 +- DevTools/Inspector/RemoteObjectGraphModel.cpp | 4 +- DevTools/Inspector/RemoteProcess.cpp | 2 +- DevTools/ProfileViewer/Profile.cpp | 6 +- DevTools/ProfileViewer/Profile.h | 2 +- DevTools/ProfileViewer/ProfileModel.cpp | 4 +- DevTools/VisualBuilder/VBForm.cpp | 2 +- Games/Minesweeper/Field.cpp | 30 ++--- Games/Minesweeper/Field.h | 26 ++--- Games/Snake/SnakeGame.cpp | 4 +- Games/Snake/SnakeGame.h | 2 +- Kernel/FileSystem/Ext2FileSystem.cpp | 44 ++++---- Kernel/FileSystem/Ext2FileSystem.h | 2 +- Kernel/FileSystem/ProcFS.cpp | 6 +- Kernel/FileSystem/VirtualFileSystem.cpp | 4 +- Kernel/Net/IPv4Socket.cpp | 4 +- Kernel/Net/IPv4Socket.h | 2 +- Kernel/Net/LocalSocket.cpp | 4 +- Kernel/Net/LocalSocket.h | 2 +- Kernel/Net/Socket.h | 8 +- Kernel/Process.cpp | 12 +- Kernel/SharedBuffer.cpp | 4 +- Kernel/Thread.cpp | 4 +- Kernel/VM/RangeAllocator.cpp | 6 +- Libraries/LibC/grp.cpp | 4 +- Libraries/LibCore/ArgsParser.cpp | 10 +- Libraries/LibCore/EventLoop.cpp | 2 +- Libraries/LibCore/IODevice.cpp | 10 +- Libraries/LibCore/IODevice.h | 4 +- Libraries/LibCore/Object.cpp | 2 +- Libraries/LibGUI/AbstractTableView.cpp | 2 +- Libraries/LibGUI/BoxLayout.cpp | 8 +- Libraries/LibGUI/ColumnsView.cpp | 2 +- Libraries/LibGUI/CppSyntaxHighlighter.cpp | 16 +-- Libraries/LibGUI/FileSystemModel.cpp | 6 +- Libraries/LibGUI/JsonArrayModel.cpp | 2 +- Libraries/LibGUI/Menu.cpp | 4 +- Libraries/LibGUI/Menu.h | 2 +- Libraries/LibGUI/Shortcut.cpp | 2 +- Libraries/LibGUI/SortingProxyModel.cpp | 4 +- Libraries/LibGUI/SyntaxHighlighter.cpp | 4 +- Libraries/LibGUI/TabWidget.cpp | 14 +-- Libraries/LibGUI/TextDocument.cpp | 2 +- Libraries/LibGUI/TextEditor.cpp | 2 +- Libraries/LibGUI/UndoStack.cpp | 6 +- Libraries/LibGUI/UndoStack.h | 4 +- Libraries/LibGUI/Widget.cpp | 2 +- Libraries/LibGfx/DisjointRectSet.cpp | 4 +- Libraries/LibGfx/DisjointRectSet.h | 2 +- Libraries/LibGfx/GIFLoader.cpp | 6 +- Libraries/LibGfx/PNGLoader.cpp | 6 +- Libraries/LibGfx/Painter.cpp | 6 +- Libraries/LibHTML/DOM/HTMLFormElement.cpp | 2 +- Libraries/LibHTML/Dump.cpp | 20 ++-- Libraries/LibHTML/Layout/LayoutBlock.cpp | 4 +- Libraries/LibHTML/Layout/LayoutText.cpp | 2 +- Libraries/LibIPC/ClientConnection.h | 2 +- Libraries/LibIPC/ServerConnection.h | 6 +- Libraries/LibMarkdown/MDText.cpp | 2 +- Libraries/LibVT/Terminal.cpp | 4 +- Libraries/LibVT/Terminal.h | 6 +- Servers/SystemServer/Service.cpp | 2 +- Servers/WindowServer/AppletManager.cpp | 9 +- Servers/WindowServer/ClientConnection.cpp | 2 +- Servers/WindowServer/Menu.cpp | 8 +- Servers/WindowServer/MenuManager.cpp | 2 +- Servers/WindowServer/WindowSwitcher.cpp | 20 ++-- Shell/LineEditor.cpp | 6 +- Shell/LineEditor.h | 8 +- Shell/main.cpp | 14 +-- Userland/disk_benchmark.cpp | 2 +- Userland/gron.cpp | 2 +- Userland/ls.cpp | 14 +-- Userland/tee.cpp | 2 +- 94 files changed, 323 insertions(+), 317 deletions(-) diff --git a/AK/FileSystemPath.cpp b/AK/FileSystemPath.cpp index f2804187130..69456cb5ed5 100644 --- a/AK/FileSystemPath.cpp +++ b/AK/FileSystemPath.cpp @@ -50,10 +50,10 @@ void FileSystemPath::canonicalize() if (!is_absolute_path) parts.prepend("."); - int approximate_canonical_length = 0; + size_t approximate_canonical_length = 0; Vector canonical_parts; - for (int i = 0; i < parts.size(); ++i) { + for (size_t i = 0; i < parts.size(); ++i) { auto& part = parts[i]; if (is_absolute_path || i != 0) { if (part == ".") @@ -75,7 +75,7 @@ void FileSystemPath::canonicalize() } StringBuilder dirname_builder(approximate_canonical_length); - for (int i = 0; i < canonical_parts.size() - 1; ++i) { + for (size_t i = 0; i < canonical_parts.size() - 1; ++i) { auto& canonical_part = canonical_parts[i]; if (is_absolute_path || i != 0) dirname_builder.append('/'); @@ -90,7 +90,7 @@ void FileSystemPath::canonicalize() m_extension = name_parts[1]; StringBuilder builder(approximate_canonical_length); - for (int i = 0; i < canonical_parts.size(); ++i) { + for (size_t i = 0; i < canonical_parts.size(); ++i) { auto& canonical_part = canonical_parts[i]; if (is_absolute_path || i != 0) builder.append('/'); diff --git a/AK/Forward.h b/AK/Forward.h index f69794d860a..5e26c61ca82 100644 --- a/AK/Forward.h +++ b/AK/Forward.h @@ -101,7 +101,7 @@ class OwnPtr; template class WeakPtr; -template +template class Vector; } diff --git a/AK/URL.cpp b/AK/URL.cpp index 02e9be01d6c..e523de26862 100644 --- a/AK/URL.cpp +++ b/AK/URL.cpp @@ -195,7 +195,7 @@ URL URL::complete_url(const String& string) const bool document_url_ends_in_slash = path()[path().length() - 1] == '/'; - for (int i = 0; i < fspath.parts().size(); ++i) { + for (size_t i = 0; i < fspath.parts().size(); ++i) { if (i == fspath.parts().size() - 1 && !document_url_ends_in_slash) break; builder.append(fspath.parts()[i]); diff --git a/AK/Vector.h b/AK/Vector.h index f8d003e6cd0..8512d3014ab 100644 --- a/AK/Vector.h +++ b/AK/Vector.h @@ -28,6 +28,7 @@ #include #include +#include #include #include #include @@ -63,28 +64,28 @@ public: --m_index; return *this; } - VectorIterator operator-(int value) { return { m_vector, m_index - value }; } - VectorIterator operator+(int value) { return { m_vector, m_index + value }; } + VectorIterator operator-(size_t value) { return { m_vector, m_index - value }; } + VectorIterator operator+(size_t value) { return { m_vector, m_index + value }; } VectorIterator& operator=(const VectorIterator& other) { m_index = other.m_index; return *this; } ElementType& operator*() { return m_vector[m_index]; } - int operator-(const VectorIterator& other) { return m_index - other.m_index; } + size_t operator-(const VectorIterator& other) { return m_index - other.m_index; } bool is_end() const { return m_index == m_vector.size(); } - int index() const { return m_index; } + size_t index() const { return m_index; } private: friend VectorType; - VectorIterator(VectorType& vector, int index) + VectorIterator(VectorType& vector, size_t index) : m_vector(vector) , m_index(index) { } VectorType& m_vector; - int m_index { 0 }; + size_t m_index { 0 }; }; template @@ -130,7 +131,7 @@ public: } }; -template +template class Vector { public: Vector() @@ -159,7 +160,7 @@ public: { if constexpr (inline_capacity > 0) { if (!m_outline_buffer) { - for (int i = 0; i < m_size; ++i) { + for (size_t i = 0; i < m_size; ++i) { new (&inline_buffer()[i]) T(move(other.inline_buffer()[i])); other.inline_buffer()[i].~T(); } @@ -177,7 +178,7 @@ public: m_size = other.size(); } - template + template Vector(const Vector& other) { ensure_capacity(other.size()); @@ -195,7 +196,7 @@ public: m_outline_buffer = other.m_outline_buffer; if constexpr (inline_capacity > 0) { if (!m_outline_buffer) { - for (int i = 0; i < m_size; ++i) { + for (size_t i = 0; i < m_size; ++i) { new (&inline_buffer()[i]) T(move(other.inline_buffer()[i])); other.inline_buffer()[i].~T(); } @@ -220,7 +221,7 @@ public: void clear_with_capacity() { - for (int i = 0; i < m_size; ++i) + for (size_t i = 0; i < m_size; ++i) data()[i].~T(); m_size = 0; } @@ -239,7 +240,7 @@ public: bool contains_slow(const T& value) const { - for (int i = 0; i < size(); ++i) { + for (size_t i = 0; i < size(); ++i) { if (at(i) == value) return true; } @@ -249,8 +250,8 @@ public: // NOTE: Vector::is_null() exists for the benefit of String::copy(). bool is_null() const { return false; } bool is_empty() const { return size() == 0; } - int size() const { return m_size; } - int capacity() const { return m_capacity; } + size_t size() const { return m_size; } + size_t capacity() const { return m_capacity; } T* data() { @@ -265,19 +266,19 @@ public: return m_outline_buffer; } - const T& at(int i) const + const T& at(size_t i) const { ASSERT(i >= 0 && i < m_size); return data()[i]; } - T& at(int i) + T& at(size_t i) { ASSERT(i >= 0 && i < m_size); return data()[i]; } - const T& operator[](int i) const { return at(i); } - T& operator[](int i) { return at(i); } + const T& operator[](size_t i) const { return at(i); } + T& operator[](size_t i) { return at(i); } const T& first() const { return at(0); } T& first() { return at(0); } @@ -302,21 +303,21 @@ public: return value; } - T take(int index) + T take(size_t index) { T value = move(at(index)); remove(index); return value; } - void unstable_remove(int index) + void unstable_remove(size_t index) { ASSERT(index < m_size); swap(at(index), at(m_size - 1)); take_last(); } - void remove(int index) + void remove(size_t index) { ASSERT(index < m_size); @@ -324,7 +325,7 @@ public: TypedTransfer::copy(slot(index), slot(index + 1), m_size - index - 1); } else { at(index).~T(); - for (int i = index + 1; i < m_size; ++i) { + for (size_t i = index + 1; i < m_size; ++i) { new (slot(i - 1)) T(move(at(i))); at(i).~T(); } @@ -333,7 +334,7 @@ public: --m_size; } - void insert(int index, T&& value) + void insert(size_t index, T&& value) { ASSERT(index <= size()); if (index == size()) @@ -343,7 +344,7 @@ public: if constexpr (Traits::is_trivial()) { TypedTransfer::move(slot(index + 1), slot(index), m_size - index - 1); } else { - for (int i = size() - 1; i > index; --i) { + for (size_t i = size() - 1; i > index; --i) { new (slot(i)) T(move(at(i - 1))); at(i - 1).~T(); } @@ -351,15 +352,15 @@ public: new (slot(index)) T(move(value)); } - void insert(int index, const T& value) + void insert(size_t index, const T& value) { insert(index, T(value)); } template - void insert_before_matching(T&& value, C callback, int first_index = 0, int* inserted_index = nullptr) + void insert_before_matching(T&& value, C callback, size_t first_index = 0, size_t* inserted_index = nullptr) { - for (int i = first_index; i < size(); ++i) { + for (size_t i = first_index; i < size(); ++i) { if (callback(at(i))) { insert(i, move(value)); if (inserted_index) @@ -383,7 +384,7 @@ public: return *this; } - template + template Vector& operator=(const Vector& other) { clear(); @@ -416,7 +417,7 @@ public: template void remove_first_matching(Callback callback) { - for (int i = 0; i < size(); ++i) { + for (size_t i = 0; i < size(); ++i) { if (callback(at(i))) { remove(i); return; @@ -427,7 +428,7 @@ public: template void remove_all_matching(Callback callback) { - for (int i = 0; i < size();) { + for (size_t i = 0; i < size();) { if (callback(at(i))) { remove(i); } else { @@ -491,7 +492,7 @@ public: auto other_size = other.size(); grow_capacity(size() + other_size); - for (int i = size() + other_size - 1; i >= other.size(); --i) { + for (size_t i = size() + other_size - 1; i >= other.size(); --i) { new (slot(i)) T(move(at(i - other_size))); at(i - other_size).~T(); } @@ -501,7 +502,7 @@ public: m_size += other_size; } - void append(const T* values, int count) + void append(const T* values, size_t count) { if (!count) return; @@ -510,24 +511,24 @@ public: m_size += count; } - void grow_capacity(int needed_capacity) + void grow_capacity(size_t needed_capacity) { if (m_capacity >= needed_capacity) return; ensure_capacity(padded_capacity(needed_capacity)); } - void ensure_capacity(int needed_capacity) + void ensure_capacity(size_t needed_capacity) { if (m_capacity >= needed_capacity) return; - int new_capacity = needed_capacity; + size_t new_capacity = needed_capacity; auto* new_buffer = (T*)kmalloc(new_capacity * sizeof(T)); if constexpr (Traits::is_trivial()) { TypedTransfer::copy(new_buffer, data(), m_size); } else { - for (int i = 0; i < m_size; ++i) { + for (size_t i = 0; i < m_size; ++i) { new (&new_buffer[i]) T(move(at(i))); at(i).~T(); } @@ -538,7 +539,7 @@ public: m_capacity = new_capacity; } - void shrink(int new_size) + void shrink(size_t new_size) { ASSERT(new_size <= size()); if (new_size == size()) @@ -549,18 +550,18 @@ public: return; } - for (int i = new_size; i < size(); ++i) + for (size_t i = new_size; i < size(); ++i) at(i).~T(); m_size = new_size; } - void resize(int new_size) + void resize(size_t new_size) { if (new_size <= size()) return shrink(new_size); ensure_capacity(new_size); - for (int i = size(); i < new_size; ++i) + for (size_t i = size(); i < new_size; ++i) new (slot(i)) T; m_size = new_size; } @@ -576,7 +577,7 @@ public: template ConstIterator find(Finder finder) const { - for (int i = 0; i < m_size; ++i) { + for (size_t i = 0; i < m_size; ++i) { if (finder(at(i))) return ConstIterator(*this, i); } @@ -586,7 +587,7 @@ public: template Iterator find(Finder finder) { - for (int i = 0; i < m_size; ++i) { + for (size_t i = 0; i < m_size; ++i) { if (finder(at(i))) return Iterator(*this, i); } @@ -603,13 +604,13 @@ public: return find([&](auto& other) { return value == other; }); } - int find_first_index(const T& value) + Optional find_first_index(const T& value) { - for (int i = 0; i < m_size; ++i) { + for (size_t i = 0; i < m_size; ++i) { if (value == at(i)) return i; } - return -1; + return {}; } private: @@ -618,13 +619,13 @@ private: m_capacity = inline_capacity; } - static int padded_capacity(int capacity) + static size_t padded_capacity(size_t capacity) { - return max(int(4), capacity + (capacity / 4) + 4); + return max(static_cast(4), capacity + (capacity / 4) + 4); } - T* slot(int i) { return &data()[i]; } - const T* slot(int i) const { return &data()[i]; } + T* slot(size_t i) { return &data()[i]; } + const T* slot(size_t i) const { return &data()[i]; } T* inline_buffer() { @@ -637,8 +638,8 @@ private: return reinterpret_cast(m_inline_buffer_storage); } - int m_size { 0 }; - int m_capacity { 0 }; + size_t m_size { 0 }; + size_t m_capacity { 0 }; alignas(T) u8 m_inline_buffer_storage[sizeof(T) * inline_capacity]; T* m_outline_buffer { nullptr }; diff --git a/Applications/Browser/History.h b/Applications/Browser/History.h index 8f6f66ff514..6df67c2b992 100644 --- a/Applications/Browser/History.h +++ b/Applications/Browser/History.h @@ -40,7 +40,7 @@ public: void go_forward(); bool can_go_back() { return m_current > 0; } - bool can_go_forward() { return m_current + 1 < m_items.size(); } + bool can_go_forward() { return m_current + 1 < static_cast(m_items.size()); } void clear(); diff --git a/Applications/DisplayProperties/DisplayProperties.cpp b/Applications/DisplayProperties/DisplayProperties.cpp index da6c96f4993..964d7a25ddd 100644 --- a/Applications/DisplayProperties/DisplayProperties.cpp +++ b/Applications/DisplayProperties/DisplayProperties.cpp @@ -138,7 +138,8 @@ void DisplayPropertiesWidget::create_frame() auto wallpaper_model = wallpaper_list->model(); auto find_first_wallpaper_index = m_wallpapers.find_first_index(m_selected_wallpaper); - auto wallpaper_index_in_model = wallpaper_model->index(find_first_wallpaper_index, wallpaper_list->model_column()); + ASSERT(find_first_wallpaper_index.has_value()); + auto wallpaper_index_in_model = wallpaper_model->index(find_first_wallpaper_index.value(), wallpaper_list->model_column()); if (wallpaper_model->is_valid(wallpaper_index_in_model)) wallpaper_list->selection().set(wallpaper_index_in_model); @@ -164,7 +165,8 @@ void DisplayPropertiesWidget::create_frame() auto resolution_model = resolution_list->model(); auto find_first_resolution_index = m_resolutions.find_first_index(m_selected_resolution); - auto resolution_index_in_model = resolution_model->index(find_first_resolution_index, resolution_list->model_column()); + ASSERT(find_first_resolution_index.has_value()); + auto resolution_index_in_model = resolution_model->index(find_first_resolution_index.value(), resolution_list->model_column()); if (resolution_model->is_valid(resolution_index_in_model)) resolution_list->selection().set(resolution_index_in_model); diff --git a/Applications/FileManager/DirectoryView.h b/Applications/FileManager/DirectoryView.h index 5992b977f01..9d528141c3c 100644 --- a/Applications/FileManager/DirectoryView.h +++ b/Applications/FileManager/DirectoryView.h @@ -101,7 +101,7 @@ private: ViewMode m_view_mode { Invalid }; NonnullRefPtr m_model; - int m_path_history_position { 0 }; + size_t m_path_history_position { 0 }; Vector m_path_history; void add_path_to_history(const StringView& path); diff --git a/Applications/FileManager/FileUtils.cpp b/Applications/FileManager/FileUtils.cpp index 3976b9515fa..9db2f3f1994 100644 --- a/Applications/FileManager/FileUtils.cpp +++ b/Applications/FileManager/FileUtils.cpp @@ -182,7 +182,7 @@ String get_duplicate_name(const String& path, int duplicate_count) FileSystemPath fsp(path); StringBuilder duplicated_name; duplicated_name.append('/'); - for (int i = 0; i < fsp.parts().size() - 1; ++i) { + for (size_t i = 0; i < fsp.parts().size() - 1; ++i) { duplicated_name.appendf("%s/", fsp.parts()[i].characters()); } auto prev_duplicate_tag = String::format("(%d)", duplicate_count); diff --git a/Applications/Help/History.h b/Applications/Help/History.h index 744176df957..c4058fabfc5 100644 --- a/Applications/Help/History.h +++ b/Applications/Help/History.h @@ -38,7 +38,7 @@ public: void go_forward(); bool can_go_back() { return m_current_history_item > 0; } - bool can_go_forward() { return m_current_history_item + 1 < m_items.size(); } + bool can_go_forward() { return m_current_history_item + 1 < static_cast(m_items.size()); } void clear(); diff --git a/Applications/Help/ManualModel.cpp b/Applications/Help/ManualModel.cpp index 928863de56a..0188dea1db8 100644 --- a/Applications/Help/ManualModel.cpp +++ b/Applications/Help/ManualModel.cpp @@ -94,7 +94,7 @@ GUI::ModelIndex ManualModel::parent_index(const GUI::ModelIndex& index) const return create_index(row, 0, parent); ASSERT_NOT_REACHED(); } - for (int row = 0; row < parent->parent()->children().size(); row++) { + for (size_t row = 0; row < parent->parent()->children().size(); row++) { ManualNode* child_at_row = &parent->parent()->children()[row]; if (child_at_row == parent) return create_index(row, 0, parent); diff --git a/Applications/IRCClient/IRCClient.cpp b/Applications/IRCClient/IRCClient.cpp index 0aa6fc48120..d117616c625 100644 --- a/Applications/IRCClient/IRCClient.cpp +++ b/Applications/IRCClient/IRCClient.cpp @@ -241,7 +241,7 @@ void IRCClient::send_whois(const String& nick) void IRCClient::handle(const Message& msg) { #ifdef IRC_DEBUG - printf("IRCClient::execute: prefix='%s', command='%s', arguments=%d\n", + printf("IRCClient::execute: prefix='%s', command='%s', arguments=%zu\n", msg.prefix.characters(), msg.command.characters(), msg.arguments.size()); @@ -463,7 +463,7 @@ IRCChannel& IRCClient::ensure_channel(const String& name) void IRCClient::handle_ping(const Message& msg) { - if (msg.arguments.size() < 0) + if (msg.arguments.size() < 1) return; m_log->add_message(0, "", "Ping? Pong!"); send_pong(msg.arguments[0]); @@ -646,7 +646,7 @@ void IRCClient::unregister_subwindow(IRCWindow& subwindow) if (subwindow.type() == IRCWindow::Server) { m_server_subwindow = &subwindow; } - for (int i = 0; i < m_windows.size(); ++i) { + for (size_t i = 0; i < m_windows.size(); ++i) { if (m_windows.at(i) == &subwindow) { m_windows.remove(i); break; diff --git a/Applications/IRCClient/IRCClient.h b/Applications/IRCClient/IRCClient.h index 99f48342c39..1c8cff8a8e8 100644 --- a/Applications/IRCClient/IRCClient.h +++ b/Applications/IRCClient/IRCClient.h @@ -84,13 +84,13 @@ public: const IRCWindow& window_at(int index) const { return *m_windows.at(index); } IRCWindow& window_at(int index) { return *m_windows.at(index); } - int window_index(const IRCWindow& window) const + size_t window_index(const IRCWindow& window) const { - for (int i = 0; i < m_windows.size(); ++i) { + for (size_t i = 0; i < m_windows.size(); ++i) { if (m_windows[i] == &window) return i; } - return -1; + ASSERT_NOT_REACHED(); } void did_part_from_channel(Badge, IRCChannel&); diff --git a/Applications/Piano/AudioEngine.cpp b/Applications/Piano/AudioEngine.cpp index 97793f170c5..e3b8d5c4347 100644 --- a/Applications/Piano/AudioEngine.cpp +++ b/Applications/Piano/AudioEngine.cpp @@ -226,11 +226,11 @@ Audio::Sample AudioEngine::noise() const Audio::Sample AudioEngine::recorded_sample(size_t note) { int t = m_pos[note]; - if (t >= m_recorded_sample.size()) + if (t >= static_cast(m_recorded_sample.size())) return 0; double w_left = m_recorded_sample[t].left; double w_right = m_recorded_sample[t].right; - if (t + 1 < m_recorded_sample.size()) { + if (t + 1 < static_cast(m_recorded_sample.size())) { double t_fraction = m_pos[note] - t; w_left += (m_recorded_sample[t + 1].left - m_recorded_sample[t].left) * t_fraction; w_right += (m_recorded_sample[t + 1].right - m_recorded_sample[t].right) * t_fraction; diff --git a/Applications/Piano/SamplerWidget.cpp b/Applications/Piano/SamplerWidget.cpp index 2231afcea34..543cee8ebb8 100644 --- a/Applications/Piano/SamplerWidget.cpp +++ b/Applications/Piano/SamplerWidget.cpp @@ -70,7 +70,7 @@ void WaveEditor::paint_event(GUI::PaintEvent& event) painter.set_pixel({ prev_x, left_prev_y }, left_wave_colors[RecordedSample]); painter.set_pixel({ prev_x, right_prev_y }, right_wave_colors[RecordedSample]); - for (int x = 1; x < recorded_sample.size(); ++x) { + for (size_t x = 1; x < recorded_sample.size(); ++x) { int left_y = sample_to_y(recorded_sample[x].left); int right_y = sample_to_y(recorded_sample[x].right); diff --git a/Applications/SoundPlayer/PlaybackManager.h b/Applications/SoundPlayer/PlaybackManager.h index 5ed9cfed511..681a79a3640 100644 --- a/Applications/SoundPlayer/PlaybackManager.h +++ b/Applications/SoundPlayer/PlaybackManager.h @@ -62,8 +62,8 @@ private: void remove_dead_buffers(); bool m_paused { true }; - int m_next_ptr { 0 }; - int m_last_seek { 0 }; + size_t m_next_ptr { 0 }; + size_t m_last_seek { 0 }; float m_total_length { 0 }; OwnPtr m_loader { nullptr }; NonnullRefPtr m_connection; diff --git a/Applications/SystemMenu/PowerDialog.cpp b/Applications/SystemMenu/PowerDialog.cpp index 988431f3a97..650ee23e89d 100644 --- a/Applications/SystemMenu/PowerDialog.cpp +++ b/Applications/SystemMenu/PowerDialog.cpp @@ -62,7 +62,7 @@ Vector PowerDialog::show() PowerDialog::PowerDialog() : GUI::Dialog(nullptr) { - Gfx::Rect rect({ 0, 0, 180, 180 + ((options.size() - 3) * 16) }); + Gfx::Rect rect({ 0, 0, 180, 180 + ((static_cast(options.size()) - 3) * 16) }); rect.center_within(GUI::Desktop::the().rect()); set_rect(rect); set_resizable(false); @@ -83,7 +83,7 @@ PowerDialog::PowerDialog() header->set_font(Gfx::Font::default_bold_font()); int selected = -1; - for (int i = 0; i < options.size(); i++) { + for (size_t i = 0; i < options.size(); i++) { auto action = options[i]; auto radio = main->add(); radio->set_enabled(action.enabled); diff --git a/Applications/Welcome/TextWidget.cpp b/Applications/Welcome/TextWidget.cpp index 8d4bad08d01..882054dafeb 100644 --- a/Applications/Welcome/TextWidget.cpp +++ b/Applications/Welcome/TextWidget.cpp @@ -62,7 +62,7 @@ void TextWidget::paint_event(GUI::PaintEvent& event) if (frame_thickness() > 0) indent = font().glyph_width('x') / 2; - for (int i = 0; i < m_lines.size(); i++) { + for (size_t i = 0; i < m_lines.size(); i++) { auto& line = m_lines[i]; auto text_rect = frame_inner_rect(); diff --git a/DevTools/HackStudio/Project.cpp b/DevTools/HackStudio/Project.cpp index eb377f1c80c..41466844d8f 100644 --- a/DevTools/HackStudio/Project.cpp +++ b/DevTools/HackStudio/Project.cpp @@ -146,7 +146,7 @@ public: return {}; } - for (int row = 0; row < node.parent->parent->children.size(); ++row) { + for (size_t row = 0; row < node.parent->parent->children.size(); ++row) { if (node.parent->parent->children[row].ptr() == node.parent) return create_index(row, 0, node.parent); } @@ -260,7 +260,7 @@ void Project::rebuild_tree() ProjectTreeNode* current = root.ptr(); StringBuilder partial_path; - for (int i = 0; i < path.parts().size(); ++i) { + for (size_t i = 0; i < path.parts().size(); ++i) { auto& part = path.parts().at(i); if (part == ".") continue; diff --git a/DevTools/HackStudio/TerminalWrapper.cpp b/DevTools/HackStudio/TerminalWrapper.cpp index 3f18359e53f..4adb9834202 100644 --- a/DevTools/HackStudio/TerminalWrapper.cpp +++ b/DevTools/HackStudio/TerminalWrapper.cpp @@ -143,7 +143,7 @@ void TerminalWrapper::run_command(const String& command) auto parts = command.split(' '); ASSERT(!parts.is_empty()); const char** args = (const char**) calloc(parts.size() + 1, sizeof(const char*)); - for (int i = 0; i < parts.size(); i++) { + for (size_t i = 0; i < parts.size(); i++) { args[i] = parts[i].characters(); } rc = execvp(args[0], const_cast(args)); diff --git a/DevTools/HackStudio/main.cpp b/DevTools/HackStudio/main.cpp index 6fd9f4f8c52..3b4db29de01 100644 --- a/DevTools/HackStudio/main.cpp +++ b/DevTools/HackStudio/main.cpp @@ -358,7 +358,7 @@ int main(int argc, char** argv) wrappers.append(&child); return IterationDecision::Continue; }); - for (int i = 0; i < wrappers.size(); ++i) { + for (size_t i = 0; i < wrappers.size(); ++i) { if (g_current_editor_wrapper.ptr() == wrappers[i]) { if (i == wrappers.size() - 1) wrappers[0]->editor().set_focus(true); diff --git a/DevTools/IPCCompiler/main.cpp b/DevTools/IPCCompiler/main.cpp index 26edb81709d..b12e8328fab 100644 --- a/DevTools/IPCCompiler/main.cpp +++ b/DevTools/IPCCompiler/main.cpp @@ -263,7 +263,7 @@ int main(int argc, char** argv) } builder.append('('); - for (int i = 0; i < parameters.size(); ++i) { + for (size_t i = 0; i < parameters.size(); ++i) { auto& parameter = parameters[i]; builder.append("const "); builder.append(parameter.type); @@ -273,7 +273,7 @@ int main(int argc, char** argv) builder.append(", "); } builder.append(") : "); - for (int i = 0; i < parameters.size(); ++i) { + for (size_t i = 0; i < parameters.size(); ++i) { auto& parameter = parameters[i]; builder.append("m_"); builder.append(parameter.name); @@ -310,9 +310,9 @@ int main(int argc, char** argv) dbg() << " " << parameter.type << " " << parameter.name << " = " << initial_value << ";"; if (parameter.type == "Vector") { - dbg() << " int " << parameter.name << "_size = 0;"; + dbg() << " u64 " << parameter.name << "_size = 0;"; dbg() << " stream >> " << parameter.name << "_size;"; - dbg() << " for (int i = 0; i < " << parameter.name << "_size; ++i) {"; + dbg() << " for (size_t i = 0; i < " << parameter.name << "_size; ++i) {"; dbg() << " Gfx::Rect rect;"; dbg() << " if (!decoder.decode(rect))"; dbg() << " return nullptr;"; @@ -325,7 +325,7 @@ int main(int argc, char** argv) } StringBuilder builder; - for (int i = 0; i < parameters.size(); ++i) { + for (size_t i = 0; i < parameters.size(); ++i) { auto& parameter = parameters[i]; builder.append(parameter.name); if (i != parameters.size() - 1) @@ -355,7 +355,7 @@ int main(int argc, char** argv) dbg() << " stream << m_" << parameter.name << ".width();"; dbg() << " stream << m_" << parameter.name << ".height();"; } else if (parameter.type == "Vector") { - dbg() << " stream << m_" << parameter.name << ".size();"; + dbg() << " stream << (u64)m_" << parameter.name << ".size();"; dbg() << " for (auto& rect : m_" << parameter.name << ") {"; dbg() << " stream << rect.x();"; dbg() << " stream << rect.y();"; diff --git a/DevTools/Inspector/RemoteObjectGraphModel.cpp b/DevTools/Inspector/RemoteObjectGraphModel.cpp index 34ae2953dbb..73d5d1dfc7e 100644 --- a/DevTools/Inspector/RemoteObjectGraphModel.cpp +++ b/DevTools/Inspector/RemoteObjectGraphModel.cpp @@ -64,7 +64,7 @@ GUI::ModelIndex RemoteObjectGraphModel::parent_index(const GUI::ModelIndex& inde // NOTE: If the parent has no parent, it's a root, so we have to look among the remote roots. if (!remote_object.parent->parent) { - for (int row = 0; row < m_process.roots().size(); ++row) { + for (size_t row = 0; row < m_process.roots().size(); ++row) { if (&m_process.roots()[row] == remote_object.parent) return create_index(row, 0, remote_object.parent); } @@ -72,7 +72,7 @@ GUI::ModelIndex RemoteObjectGraphModel::parent_index(const GUI::ModelIndex& inde return {}; } - for (int row = 0; row < remote_object.parent->parent->children.size(); ++row) { + for (size_t row = 0; row < remote_object.parent->parent->children.size(); ++row) { if (&remote_object.parent->parent->children[row] == remote_object.parent) return create_index(row, 0, remote_object.parent); } diff --git a/DevTools/Inspector/RemoteProcess.cpp b/DevTools/Inspector/RemoteProcess.cpp index abf1098504b..f2de0fddd9e 100644 --- a/DevTools/Inspector/RemoteProcess.cpp +++ b/DevTools/Inspector/RemoteProcess.cpp @@ -71,7 +71,7 @@ void RemoteProcess::handle_get_all_objects_response(const JsonObject& response) remote_objects.append(move(remote_object)); } - for (int i = 0; i < remote_objects.size(); ++i) { + for (size_t i = 0; i < remote_objects.size(); ++i) { auto& remote_object = remote_objects.ptr_at(i); auto* parent = objects_by_address.get(remote_object->parent_address).value_or(nullptr); if (!parent) { diff --git a/DevTools/ProfileViewer/Profile.cpp b/DevTools/ProfileViewer/Profile.cpp index 95182cd6488..653bc2960da 100644 --- a/DevTools/ProfileViewer/Profile.cpp +++ b/DevTools/ProfileViewer/Profile.cpp @@ -108,7 +108,7 @@ void Profile::rebuild_tree() Vector> roots; auto find_or_create_root = [&roots](const String& symbol, u32 address, u32 offset, u64 timestamp) -> ProfileNode& { - for (int i = 0; i < roots.size(); ++i) { + for (size_t i = 0; i < roots.size(); ++i) { auto& root = roots[i]; if (root->symbol() == symbol) { return root; @@ -152,12 +152,12 @@ void Profile::rebuild_tree() auto for_each_frame = [&](Callback callback) { if (!m_inverted) { - for (int i = 0; i < sample.frames.size(); ++i) { + for (size_t i = 0; i < sample.frames.size(); ++i) { if (callback(sample.frames.at(i)) == IterationDecision::Break) break; } } else { - for (int i = sample.frames.size() - 1; i >= 0; --i) { + for (size_t i = sample.frames.size() - 1; i >= 0; --i) { if (callback(sample.frames.at(i)) == IterationDecision::Break) break; } diff --git a/DevTools/ProfileViewer/Profile.h b/DevTools/ProfileViewer/Profile.h index de9cda3c740..d828d70d401 100644 --- a/DevTools/ProfileViewer/Profile.h +++ b/DevTools/ProfileViewer/Profile.h @@ -63,7 +63,7 @@ public: ProfileNode& find_or_create_child(const String& symbol, u32 address, u32 offset, u64 timestamp) { - for (int i = 0; i < m_children.size(); ++i) { + for (size_t i = 0; i < m_children.size(); ++i) { auto& child = m_children[i]; if (child->symbol() == symbol) { return child; diff --git a/DevTools/ProfileViewer/ProfileModel.cpp b/DevTools/ProfileViewer/ProfileModel.cpp index 29a340d82f5..70010e5460a 100644 --- a/DevTools/ProfileViewer/ProfileModel.cpp +++ b/DevTools/ProfileViewer/ProfileModel.cpp @@ -62,7 +62,7 @@ GUI::ModelIndex ProfileModel::parent_index(const GUI::ModelIndex& index) const // NOTE: If the parent has no parent, it's a root, so we have to look among the roots. if (!node.parent()->parent()) { - for (int row = 0; row < m_profile.roots().size(); ++row) { + for (size_t row = 0; row < m_profile.roots().size(); ++row) { if (m_profile.roots()[row].ptr() == node.parent()) { return create_index(row, index.column(), node.parent()); } @@ -71,7 +71,7 @@ GUI::ModelIndex ProfileModel::parent_index(const GUI::ModelIndex& index) const return {}; } - for (int row = 0; row < node.parent()->parent()->children().size(); ++row) { + for (size_t row = 0; row < node.parent()->parent()->children().size(); ++row) { if (node.parent()->parent()->children()[row].ptr() == node.parent()) return create_index(row, index.column(), node.parent()); } diff --git a/DevTools/VisualBuilder/VBForm.cpp b/DevTools/VisualBuilder/VBForm.cpp index ba105eec84f..33566237717 100644 --- a/DevTools/VisualBuilder/VBForm.cpp +++ b/DevTools/VisualBuilder/VBForm.cpp @@ -171,7 +171,7 @@ void VBForm::keydown_event(GUI::KeyEvent& event) update(); return; } - int selected_widget_index = 0; + size_t selected_widget_index = 0; for (; selected_widget_index < m_widgets.size(); ++selected_widget_index) { if (&m_widgets[selected_widget_index] == *m_selected_widgets.begin()) break; diff --git a/Games/Minesweeper/Field.cpp b/Games/Minesweeper/Field.cpp index cff67823a6f..36d7449672b 100644 --- a/Games/Minesweeper/Field.cpp +++ b/Games/Minesweeper/Field.cpp @@ -183,8 +183,8 @@ void Field::set_face(Face face) template void Square::for_each_neighbor(Callback callback) { - int r = row; - int c = column; + size_t r = row; + size_t c = column; if (r > 0) // Up callback(field->square(r - 1, c)); if (c > 0) // Left @@ -217,7 +217,7 @@ void Field::reset() m_squares.resize(max(m_squares.size(), rows() * columns())); - for (int i = rows() * columns(); i < m_squares.size(); ++i) { + for (int i = rows() * columns(); i < static_cast(m_squares.size()); ++i) { auto& square = m_squares[i]; square->button->set_visible(false); square->label->set_visible(false); @@ -230,12 +230,12 @@ void Field::reset() mines.set(location); } - int i = 0; - for (int r = 0; r < rows(); ++r) { - for (int c = 0; c < columns(); ++c) { + size_t i = 0; + for (size_t r = 0; r < rows(); ++r) { + for (size_t c = 0; c < columns(); ++c) { if (!m_squares[i]) m_squares[i] = make(); - Gfx::Rect rect = { frame_thickness() + c * square_size(), frame_thickness() + r * square_size(), square_size(), square_size() }; + Gfx::Rect rect = { frame_thickness() + static_cast(c) * square_size(), frame_thickness() + static_cast(r) * square_size(), square_size(), square_size() }; auto& square = this->square(r, c); square.field = this; square.row = r; @@ -276,10 +276,10 @@ void Field::reset() } } - for (int r = 0; r < rows(); ++r) { - for (int c = 0; c < columns(); ++c) { + for (size_t r = 0; r < rows(); ++r) { + for (size_t c = 0; c < columns(); ++c) { auto& square = this->square(r, c); - int number = 0; + size_t number = 0; square.for_each_neighbor([&number](auto& neighbor) { number += neighbor.has_mine; }); @@ -380,7 +380,7 @@ void Field::on_square_chorded(Square& square) return; if (!square.number) return; - int adjacent_flags = 0; + size_t adjacent_flags = 0; square.for_each_neighbor([&](auto& neighbor) { if (neighbor.has_flag) ++adjacent_flags; @@ -461,8 +461,8 @@ void Field::game_over() void Field::reveal_mines() { - for (int r = 0; r < rows(); ++r) { - for (int c = 0; c < columns(); ++c) { + for (size_t r = 0; r < rows(); ++r) { + for (size_t c = 0; c < columns(); ++c) { auto& square = this->square(r, c); if (square.has_mine && !square.has_flag) { square.button->set_visible(false); @@ -490,7 +490,7 @@ void Field::set_chord_preview(Square& square, bool chord_preview) }); } -void Field::set_field_size(int rows, int columns, size_t mine_count) +void Field::set_field_size(size_t rows, size_t columns, size_t mine_count) { if (m_rows == rows && m_columns == columns && m_mine_count == mine_count) return; @@ -526,6 +526,6 @@ Square::~Square() template void Field::for_each_square(Callback callback) { - for (int i = 0; i < rows() * columns(); ++i) + for (size_t i = 0; i < rows() * columns(); ++i) callback(*m_squares[i]); } diff --git a/Games/Minesweeper/Field.h b/Games/Minesweeper/Field.h index db6ee64fbb9..742329fde8a 100644 --- a/Games/Minesweeper/Field.h +++ b/Games/Minesweeper/Field.h @@ -45,9 +45,9 @@ public: bool has_mine { false }; bool has_flag { false }; bool is_considering { false }; - int row { 0 }; - int column { 0 }; - int number { 0 }; + size_t row { 0 }; + size_t column { 0 }; + size_t number { 0 }; RefPtr button; RefPtr label; @@ -63,13 +63,13 @@ public: Field(GUI::Label& flag_label, GUI::Label& time_label, GUI::Button& face_button, Function on_size_changed); virtual ~Field() override; - int rows() const { return m_rows; } - int columns() const { return m_columns; } + size_t rows() const { return m_rows; } + size_t columns() const { return m_columns; } size_t mine_count() const { return m_mine_count; } int square_size() const { return 15; } bool is_single_chording() const { return m_single_chording; } - void set_field_size(int rows, int columns, size_t mine_count); + void set_field_size(size_t rows, size_t columns, size_t mine_count); void set_single_chording(bool new_val); void reset(); @@ -87,8 +87,8 @@ private: void set_chord_preview(Square&, bool); void set_flag(Square&, bool); - Square& square(int row, int column) { return *m_squares[row * columns() + column]; } - const Square& square(int row, int column) const { return *m_squares[row * columns() + column]; } + Square& square(size_t row, size_t column) { return *m_squares[row * columns() + column]; } + const Square& square(size_t row, size_t column) const { return *m_squares[row * columns() + column]; } void flood_fill(Square&); void on_square_clicked_impl(Square&, bool); @@ -103,10 +103,10 @@ private: }; void set_face(Face); - int m_rows { 0 }; - int m_columns { 0 }; + size_t m_rows { 0 }; + size_t m_columns { 0 }; size_t m_mine_count { 0 }; - int m_unswept_empties { 0 }; + size_t m_unswept_empties { 0 }; Vector> m_squares; RefPtr m_mine_bitmap; RefPtr m_flag_bitmap; @@ -120,8 +120,8 @@ private: GUI::Label& m_flag_label; GUI::Label& m_time_label; RefPtr m_timer; - int m_time_elapsed { 0 }; - int m_flags_left { 0 }; + size_t m_time_elapsed { 0 }; + size_t m_flags_left { 0 }; Face m_face { Face::Default }; bool m_chord_preview { false }; bool m_first_click { true }; diff --git a/Games/Snake/SnakeGame.cpp b/Games/Snake/SnakeGame.cpp index 39ba9caa440..5c05446185e 100644 --- a/Games/Snake/SnakeGame.cpp +++ b/Games/Snake/SnakeGame.cpp @@ -66,7 +66,7 @@ void SnakeGame::reset() bool SnakeGame::is_available(const Coordinate& coord) { - for (int i = 0; i < m_tail.size(); ++i) { + for (size_t i = 0; i < m_tail.size(); ++i) { if (m_tail[i] == coord) return false; } @@ -134,7 +134,7 @@ void SnakeGame::timer_event(Core::TimerEvent&) dirty_cells.append(m_head); - for (int i = 0; i < m_tail.size(); ++i) { + for (size_t i = 0; i < m_tail.size(); ++i) { if (m_head == m_tail[i]) { game_over(); return; diff --git a/Games/Snake/SnakeGame.h b/Games/Snake/SnakeGame.h index 6ecb5fa0998..e015f3fd73c 100644 --- a/Games/Snake/SnakeGame.h +++ b/Games/Snake/SnakeGame.h @@ -81,7 +81,7 @@ private: Coordinate m_fruit; int m_fruit_type { 0 }; - int m_length { 0 }; + size_t m_length { 0 }; unsigned m_score { 0 }; String m_score_text; unsigned m_high_score { 0 }; diff --git a/Kernel/FileSystem/Ext2FileSystem.cpp b/Kernel/FileSystem/Ext2FileSystem.cpp index a6d8a510ebb..286a6f10235 100644 --- a/Kernel/FileSystem/Ext2FileSystem.cpp +++ b/Kernel/FileSystem/Ext2FileSystem.cpp @@ -668,15 +668,15 @@ ssize_t Ext2FSInode::read_bytes(off_t offset, ssize_t count, u8* buffer, FileDes const int block_size = fs().block_size(); - int first_block_logical_index = offset / block_size; - int last_block_logical_index = (offset + count) / block_size; + size_t first_block_logical_index = offset / block_size; + size_t last_block_logical_index = (offset + count) / block_size; if (last_block_logical_index >= m_block_list.size()) last_block_logical_index = m_block_list.size() - 1; int offset_into_first_block = offset % block_size; ssize_t nread = 0; - int remaining_count = min((off_t)count, (off_t)size() - offset); + size_t remaining_count = min((off_t)count, (off_t)size() - offset); u8* out = buffer; #ifdef EXT2_DEBUG @@ -685,7 +685,7 @@ ssize_t Ext2FSInode::read_bytes(off_t offset, ssize_t count, u8* buffer, FileDes u8 block[max_block_size]; - for (int bi = first_block_logical_index; remaining_count && bi <= last_block_logical_index; ++bi) { + for (size_t bi = first_block_logical_index; remaining_count && bi <= last_block_logical_index; ++bi) { auto block_index = m_block_list[bi]; ASSERT(block_index); bool success = fs().read_block(block_index, block, description); @@ -694,8 +694,8 @@ ssize_t Ext2FSInode::read_bytes(off_t offset, ssize_t count, u8* buffer, FileDes return -EIO; } - int offset_into_block = (bi == first_block_logical_index) ? offset_into_first_block : 0; - int num_bytes_to_copy = min(block_size - offset_into_block, remaining_count); + size_t offset_into_block = (bi == first_block_logical_index) ? offset_into_first_block : 0; + size_t num_bytes_to_copy = min(block_size - offset_into_block, remaining_count); memcpy(out, block + offset_into_block, num_bytes_to_copy); remaining_count -= num_bytes_to_copy; nread += num_bytes_to_copy; @@ -712,8 +712,8 @@ KResult Ext2FSInode::resize(u64 new_size) return KSuccess; u64 block_size = fs().block_size(); - int blocks_needed_before = ceil_div(old_size, block_size); - int blocks_needed_after = ceil_div(new_size, block_size); + size_t blocks_needed_before = ceil_div(old_size, block_size); + size_t blocks_needed_after = ceil_div(new_size, block_size); #ifdef EXT2_DEBUG dbgprintf("Ext2FSInode::resize(): blocks needed before (size was %Q): %d\n", old_size, blocks_needed_before); @@ -777,7 +777,7 @@ ssize_t Ext2FSInode::write_bytes(off_t offset, ssize_t count, const u8* data, Fi } } - const ssize_t block_size = fs().block_size(); + const size_t block_size = fs().block_size(); u64 old_size = size(); u64 new_size = max(static_cast(offset) + count, (u64)size()); @@ -793,17 +793,17 @@ ssize_t Ext2FSInode::write_bytes(off_t offset, ssize_t count, const u8* data, Fi return -EIO; } - int first_block_logical_index = offset / block_size; - int last_block_logical_index = (offset + count) / block_size; + size_t first_block_logical_index = offset / block_size; + size_t last_block_logical_index = (offset + count) / block_size; if (last_block_logical_index >= m_block_list.size()) last_block_logical_index = m_block_list.size() - 1; - int offset_into_first_block = offset % block_size; + size_t offset_into_first_block = offset % block_size; - int last_logical_block_index_in_file = new_size / block_size; + size_t last_logical_block_index_in_file = new_size / block_size; ssize_t nwritten = 0; - int remaining_count = min((off_t)count, (off_t)new_size - offset); + size_t remaining_count = min((off_t)count, (off_t)new_size - offset); const u8* in = data; #ifdef EXT2_DEBUG @@ -811,9 +811,9 @@ ssize_t Ext2FSInode::write_bytes(off_t offset, ssize_t count, const u8* data, Fi #endif auto buffer_block = ByteBuffer::create_uninitialized(block_size); - for (int bi = first_block_logical_index; remaining_count && bi <= last_block_logical_index; ++bi) { - int offset_into_block = (bi == first_block_logical_index) ? offset_into_first_block : 0; - int num_bytes_to_copy = min(block_size - offset_into_block, remaining_count); + for (size_t bi = first_block_logical_index; remaining_count && bi <= last_block_logical_index; ++bi) { + size_t offset_into_block = (bi == first_block_logical_index) ? offset_into_first_block : 0; + size_t num_bytes_to_copy = min(block_size - offset_into_block, remaining_count); ByteBuffer block; if (offset_into_block != 0 || num_bytes_to_copy != block_size) { @@ -828,8 +828,8 @@ ssize_t Ext2FSInode::write_bytes(off_t offset, ssize_t count, const u8* data, Fi memcpy(block.data() + offset_into_block, in, num_bytes_to_copy); if (bi == last_logical_block_index_in_file && num_bytes_to_copy < block_size) { - int padding_start = new_size % block_size; - int padding_bytes = block_size - padding_start; + size_t padding_start = new_size % block_size; + size_t padding_bytes = block_size - padding_start; #ifdef EXT2_DEBUG dbg() << "Ext2FS: Padding last block of file with zero x " << padding_bytes << " (new_size=" << new_size << ", offset_into_block=" << offset_into_block << ", num_bytes_to_copy=" << num_bytes_to_copy << ")"; #endif @@ -905,7 +905,7 @@ bool Ext2FSInode::write_directory(const Vector& entries) auto directory_data = ByteBuffer::create_uninitialized(occupied_size); BufferStream stream(directory_data); - for (int i = 0; i < entries.size(); ++i) { + for (size_t i = 0; i < entries.size(); ++i) { auto& entry = entries[i]; int record_length = EXT2_DIR_REC_LEN(entry.name_length); @@ -1087,7 +1087,7 @@ Ext2FS::BlockIndex Ext2FS::allocate_block(GroupIndex preferred_group_index) return block_index; } -Vector Ext2FS::allocate_blocks(GroupIndex preferred_group_index, int count) +Vector Ext2FS::allocate_blocks(GroupIndex preferred_group_index, size_t count) { LOCKER(m_lock); #ifdef EXT2_DEBUG @@ -1424,7 +1424,7 @@ KResultOr> Ext2FS::create_inode(InodeIdentifier parent_id, dbgprintf("Ext2FS: Adding inode '%s' (mode %o) to parent directory %u:\n", name.characters(), mode, parent_inode->identifier().index()); #endif - auto needed_blocks = ceil_div(size, block_size()); + size_t needed_blocks = ceil_div(size, block_size()); if ((size_t)needed_blocks > super_block().s_free_blocks_count) { dbg() << "Ext2FS: create_inode: not enough free blocks"; return KResult(-ENOSPC); diff --git a/Kernel/FileSystem/Ext2FileSystem.h b/Kernel/FileSystem/Ext2FileSystem.h index acf8a7907ab..3185a5a5673 100644 --- a/Kernel/FileSystem/Ext2FileSystem.h +++ b/Kernel/FileSystem/Ext2FileSystem.h @@ -135,7 +135,7 @@ private: BlockIndex first_block_index() const; InodeIndex find_a_free_inode(GroupIndex preferred_group, off_t expected_size); - Vector allocate_blocks(GroupIndex preferred_group_index, int count); + Vector allocate_blocks(GroupIndex preferred_group_index, size_t count); BlockIndex allocate_block(GroupIndex preferred_group_index); GroupIndex group_index_from_inode(InodeIndex) const; GroupIndex group_index_from_block_index(BlockIndex) const; diff --git a/Kernel/FileSystem/ProcFS.cpp b/Kernel/FileSystem/ProcFS.cpp index 51fa57c9277..78ea8efb9e3 100644 --- a/Kernel/FileSystem/ProcFS.cpp +++ b/Kernel/FileSystem/ProcFS.cpp @@ -145,7 +145,7 @@ static inline int to_fd(const InodeIdentifier& identifier) return (identifier.index() & 0xff) - FI_MaxStaticFileIndex; } -static inline int to_sys_index(const InodeIdentifier& identifier) +static inline size_t to_sys_index(const InodeIdentifier& identifier) { ASSERT(to_proc_parent_directory(identifier) == PDI_Root_sys); ASSERT(to_proc_file_type(identifier) == FI_Root_sys_variable); @@ -1271,7 +1271,7 @@ bool ProcFSInode::traverse_as_directory(Function ProcFSInode::lookup(StringView name) } if (proc_file_type == FI_Root_sys) { - for (int i = 1; i < sys_variables().size(); ++i) { + for (size_t i = 1; i < sys_variables().size(); ++i) { auto& variable = sys_variables()[i]; if (name == variable.name) return fs().get_inode(sys_var_to_identifier(fsid(), i)); diff --git a/Kernel/FileSystem/VirtualFileSystem.cpp b/Kernel/FileSystem/VirtualFileSystem.cpp index f247757e674..24bfd3f5f75 100644 --- a/Kernel/FileSystem/VirtualFileSystem.cpp +++ b/Kernel/FileSystem/VirtualFileSystem.cpp @@ -93,7 +93,7 @@ KResult VFS::unmount(InodeIdentifier guest_inode_id) LOCKER(m_lock); dbg() << "VFS: unmount called with inode " << guest_inode_id; - for (int i = 0; i < m_mounts.size(); ++i) { + for (size_t i = 0; i < m_mounts.size(); ++i) { auto& mount = m_mounts.at(i); if (mount.guest() == guest_inode_id) { auto result = mount.guest_fs().prepare_to_unmount(); @@ -788,7 +788,7 @@ KResultOr> VFS::resolve_path(StringView path, Custody& ba NonnullRefPtr custody = path[0] == '/' ? current_root : base; - for (int i = 0; i < parts.size(); ++i) { + for (size_t i = 0; i < parts.size(); ++i) { Custody& parent = custody; auto parent_metadata = parent.inode().metadata(); if (!parent_metadata.is_directory()) diff --git a/Kernel/Net/IPv4Socket.cpp b/Kernel/Net/IPv4Socket.cpp index ec20d1421d5..b819b5e24bc 100644 --- a/Kernel/Net/IPv4Socket.cpp +++ b/Kernel/Net/IPv4Socket.cpp @@ -128,7 +128,7 @@ KResult IPv4Socket::bind(const sockaddr* user_address, socklen_t address_size) return protocol_bind(); } -KResult IPv4Socket::listen(int backlog) +KResult IPv4Socket::listen(size_t backlog) { int rc = allocate_local_port_if_needed(); if (rc < 0) @@ -138,7 +138,7 @@ KResult IPv4Socket::listen(int backlog) m_role = Role::Listener; #ifdef IPV4_SOCKET_DEBUG - kprintf("IPv4Socket{%p} listening with backlog=%d\n", this, backlog); + kprintf("IPv4Socket{%p} listening with backlog=%zu\n", this, backlog); #endif return protocol_listen(); diff --git a/Kernel/Net/IPv4Socket.h b/Kernel/Net/IPv4Socket.h index 8f45a34ad63..3a210dd9f83 100644 --- a/Kernel/Net/IPv4Socket.h +++ b/Kernel/Net/IPv4Socket.h @@ -51,7 +51,7 @@ public: virtual void close() override; virtual KResult bind(const sockaddr*, socklen_t) override; virtual KResult connect(FileDescription&, const sockaddr*, socklen_t, ShouldBlock = ShouldBlock::Yes) override; - virtual KResult listen(int) override; + virtual KResult listen(size_t) override; virtual void get_local_address(sockaddr*, socklen_t*) override; virtual void get_peer_address(sockaddr*, socklen_t*) override; virtual void attach(FileDescription&) override; diff --git a/Kernel/Net/LocalSocket.cpp b/Kernel/Net/LocalSocket.cpp index cda15fb5616..eb956a2f7f6 100644 --- a/Kernel/Net/LocalSocket.cpp +++ b/Kernel/Net/LocalSocket.cpp @@ -192,7 +192,7 @@ KResult LocalSocket::connect(FileDescription& description, const sockaddr* addre return KSuccess; } -KResult LocalSocket::listen(int backlog) +KResult LocalSocket::listen(size_t backlog) { LOCKER(lock()); if (type() != SOCK_STREAM) @@ -200,7 +200,7 @@ KResult LocalSocket::listen(int backlog) set_backlog(backlog); m_connect_side_role = m_role = Role::Listener; #ifdef DEBUG_LOCAL_SOCKET - kprintf("LocalSocket{%p} listening with backlog=%d\n", this, backlog); + kprintf("LocalSocket{%p} listening with backlog=%zu\n", this, backlog); #endif return KSuccess; } diff --git a/Kernel/Net/LocalSocket.h b/Kernel/Net/LocalSocket.h index 20b8db64022..2409b3f8a5e 100644 --- a/Kernel/Net/LocalSocket.h +++ b/Kernel/Net/LocalSocket.h @@ -50,7 +50,7 @@ public: // ^Socket virtual KResult bind(const sockaddr*, socklen_t) override; virtual KResult connect(FileDescription&, const sockaddr*, socklen_t, ShouldBlock = ShouldBlock::Yes) override; - virtual KResult listen(int) override; + virtual KResult listen(size_t) override; virtual void get_local_address(sockaddr*, socklen_t*) override; virtual void get_peer_address(sockaddr*, socklen_t*) override; virtual void attach(FileDescription&) override; diff --git a/Kernel/Net/Socket.h b/Kernel/Net/Socket.h index 1639e79d132..ca2ad471cc8 100644 --- a/Kernel/Net/Socket.h +++ b/Kernel/Net/Socket.h @@ -99,7 +99,7 @@ public: virtual KResult bind(const sockaddr*, socklen_t) = 0; virtual KResult connect(FileDescription&, const sockaddr*, socklen_t, ShouldBlock) = 0; - virtual KResult listen(int) = 0; + virtual KResult listen(size_t) = 0; virtual void get_local_address(sockaddr*, socklen_t*) = 0; virtual void get_peer_address(sockaddr*, socklen_t*) = 0; virtual bool is_local() const { return false; } @@ -138,8 +138,8 @@ protected: KResult queue_connection_from(NonnullRefPtr); - int backlog() const { return m_backlog; } - void set_backlog(int backlog) { m_backlog = backlog; } + size_t backlog() const { return m_backlog; } + void set_backlog(size_t backlog) { m_backlog = backlog; } virtual const char* class_name() const override { return "Socket"; } @@ -160,7 +160,7 @@ private: int m_domain { 0 }; int m_type { 0 }; int m_protocol { 0 }; - int m_backlog { 0 }; + size_t m_backlog { 0 }; SetupState m_setup_state { SetupState::Unstarted }; bool m_connected { false }; bool m_shut_down_for_reading { false }; diff --git a/Kernel/Process.cpp b/Kernel/Process.cpp index cfe1b78814f..0f917caa841 100644 --- a/Kernel/Process.cpp +++ b/Kernel/Process.cpp @@ -255,7 +255,7 @@ bool Process::deallocate_region(Region& region) InterruptDisabler disabler; if (m_region_lookup_cache.region == ®ion) m_region_lookup_cache.region = nullptr; - for (int i = 0; i < m_regions.size(); ++i) { + for (size_t i = 0; i < m_regions.size(); ++i) { if (&m_regions[i] == ®ion) { m_regions.unstable_remove(i); return true; @@ -956,7 +956,7 @@ int Process::do_exec(NonnullRefPtr main_program_description, Ve disown_all_shared_buffers(); - for (int i = 0; i < m_fds.size(); ++i) { + for (size_t i = 0; i < m_fds.size(); ++i) { auto& daf = m_fds[i]; if (daf.description && daf.flags & FD_CLOEXEC) { daf.description->close(); @@ -1522,7 +1522,7 @@ RefPtr Process::file_description(int fd) const { if (fd < 0) return nullptr; - if (fd < m_fds.size()) + if (static_cast(fd) < m_fds.size()) return m_fds[fd].description.ptr(); return nullptr; } @@ -1531,7 +1531,7 @@ int Process::fd_flags(int fd) const { if (fd < 0) return -1; - if (fd < m_fds.size()) + if (static_cast(fd) < m_fds.size()) return m_fds[fd].flags; return -1; } @@ -3189,6 +3189,8 @@ int Process::sys$bind(int sockfd, const sockaddr* address, socklen_t address_len int Process::sys$listen(int sockfd, int backlog) { + if (backlog < 0) + return -EINVAL; auto description = file_description(sockfd); if (!description) return -EBADF; @@ -4761,7 +4763,7 @@ int Process::sys$unveil(const Syscall::SC_unveil_params* user_params) } } - for (int i = 0; i < m_unveiled_paths.size(); ++i) { + for (size_t i = 0; i < m_unveiled_paths.size(); ++i) { auto& unveiled_path = m_unveiled_paths[i]; if (unveiled_path.path == path.value()) { if (new_permissions & ~unveiled_path.permissions) diff --git a/Kernel/SharedBuffer.cpp b/Kernel/SharedBuffer.cpp index 01f8426041d..128523a622c 100644 --- a/Kernel/SharedBuffer.cpp +++ b/Kernel/SharedBuffer.cpp @@ -122,7 +122,7 @@ void SharedBuffer::share_with(pid_t peer_pid) void SharedBuffer::deref_for_process(Process& process) { LOCKER(shared_buffers().lock()); - for (int i = 0; i < m_refs.size(); ++i) { + for (size_t i = 0; i < m_refs.size(); ++i) { auto& ref = m_refs[i]; if (ref.pid == process.pid()) { ref.count--; @@ -150,7 +150,7 @@ void SharedBuffer::deref_for_process(Process& process) void SharedBuffer::disown(pid_t pid) { LOCKER(shared_buffers().lock()); - for (int i = 0; i < m_refs.size(); ++i) { + for (size_t i = 0; i < m_refs.size(); ++i) { auto& ref = m_refs[i]; if (ref.pid == pid) { #ifdef SHARED_BUFFER_DEBUG diff --git a/Kernel/Thread.cpp b/Kernel/Thread.cpp index de857a06628..8f38cb658ae 100644 --- a/Kernel/Thread.cpp +++ b/Kernel/Thread.cpp @@ -644,7 +644,7 @@ u32 Thread::make_userspace_stack_for_main_thread(Vector arguments, Vecto SmapDisabler disabler; - for (int i = 0; i < arguments.size(); ++i) { + for (size_t i = 0; i < arguments.size(); ++i) { argv[i] = bufptr; memcpy(bufptr, arguments[i].characters(), arguments[i].length()); bufptr += arguments[i].length(); @@ -652,7 +652,7 @@ u32 Thread::make_userspace_stack_for_main_thread(Vector arguments, Vecto } argv[arguments.size()] = nullptr; - for (int i = 0; i < environment.size(); ++i) { + for (size_t i = 0; i < environment.size(); ++i) { env[i] = bufptr; memcpy(bufptr, environment[i].characters(), environment[i].length()); bufptr += environment[i].length(); diff --git a/Kernel/VM/RangeAllocator.cpp b/Kernel/VM/RangeAllocator.cpp index 509d7e4a713..29f5d045c43 100644 --- a/Kernel/VM/RangeAllocator.cpp +++ b/Kernel/VM/RangeAllocator.cpp @@ -108,7 +108,7 @@ Range RangeAllocator::allocate_anywhere(size_t size, size_t alignment) size_t offset_from_effective_base = 0; #endif - for (int i = 0; i < m_available_ranges.size(); ++i) { + for (size_t i = 0; i < m_available_ranges.size(); ++i) { auto& available_range = m_available_ranges[i]; // FIXME: This check is probably excluding some valid candidates when using a large alignment. if (available_range.size() < (effective_size + alignment)) @@ -142,7 +142,7 @@ Range RangeAllocator::allocate_specific(VirtualAddress base, size_t size) return {}; Range allocated_range(base, size); - for (int i = 0; i < m_available_ranges.size(); ++i) { + for (size_t i = 0; i < m_available_ranges.size(); ++i) { auto& available_range = m_available_ranges[i]; if (!available_range.contains(base, size)) continue; @@ -181,7 +181,7 @@ void RangeAllocator::deallocate(Range range) }, &nearby_index); - int inserted_index = 0; + size_t inserted_index = 0; if (existing_range) { existing_range->m_size += range.size(); inserted_index = nearby_index; diff --git a/Libraries/LibC/grp.cpp b/Libraries/LibC/grp.cpp index 4b0726875d0..76e69ae9693 100644 --- a/Libraries/LibC/grp.cpp +++ b/Libraries/LibC/grp.cpp @@ -116,7 +116,7 @@ next_entry: String line(s, Chomp); auto parts = line.split(':', true); if (parts.size() != 4) { - fprintf(stderr, "getgrent(): Malformed entry on line %u: '%s' has %u parts\n", __grdb_line_number, line.characters(), parts.size()); + fprintf(stderr, "getgrent(): Malformed entry on line %u: '%s' has %zu parts\n", __grdb_line_number, line.characters(), parts.size()); goto next_entry; } auto& e_name = parts[0]; @@ -133,7 +133,7 @@ next_entry: __grdb_entry->gr_gid = e_gid; __grdb_entry->gr_name = __grdb_entry->name_buffer; __grdb_entry->gr_passwd = __grdb_entry->passwd_buffer; - for (ssize_t i = 0; i < members.size(); ++i) { + for (size_t i = 0; i < members.size(); ++i) { __grdb_entry->members[i] = __grdb_entry->members_buffer[i]; strcpy(__grdb_entry->members_buffer[i], members[i].characters()); } diff --git a/Libraries/LibCore/ArgsParser.cpp b/Libraries/LibCore/ArgsParser.cpp index d8fb2609f54..18591d4cf99 100644 --- a/Libraries/LibCore/ArgsParser.cpp +++ b/Libraries/LibCore/ArgsParser.cpp @@ -48,14 +48,14 @@ void ArgsParser::parse(int argc, char** argv) int index_of_found_long_option = -1; - for (int i = 0; i < m_options.size(); i++) { + for (size_t i = 0; i < m_options.size(); i++) { auto& opt = m_options[i]; if (opt.long_name) { option long_opt { opt.long_name, opt.requires_argument ? required_argument : no_argument, &index_of_found_long_option, - i + static_cast(i) }; long_options.append(long_opt); } @@ -107,7 +107,7 @@ void ArgsParser::parse(int argc, char** argv) int values_left = argc - optind; int num_values_for_arg[m_positional_args.size()]; int total_values_required = 0; - for (int i = 0; i < m_positional_args.size(); i++) { + for (size_t i = 0; i < m_positional_args.size(); i++) { auto& arg = m_positional_args[i]; num_values_for_arg[i] = arg.min_values; total_values_required += arg.min_values; @@ -117,7 +117,7 @@ void ArgsParser::parse(int argc, char** argv) print_usage_and_exit(); int extra_values_to_distribute = values_left - total_values_required; - for (int i = 0; i < m_positional_args.size(); i++) { + for (size_t i = 0; i < m_positional_args.size(); i++) { auto& arg = m_positional_args[i]; int extra_values_to_this_arg = min(arg.max_values - arg.min_values, extra_values_to_distribute); num_values_for_arg[i] += extra_values_to_this_arg; @@ -131,7 +131,7 @@ void ArgsParser::parse(int argc, char** argv) print_usage_and_exit(); } - for (int i = 0; i < m_positional_args.size(); i++) { + for (size_t i = 0; i < m_positional_args.size(); i++) { auto& arg = m_positional_args[i]; for (int j = 0; j < num_values_for_arg[i]; j++) { const char* value = argv[optind++]; diff --git a/Libraries/LibCore/EventLoop.cpp b/Libraries/LibCore/EventLoop.cpp index 733acf0e11b..1f2efb2333b 100644 --- a/Libraries/LibCore/EventLoop.cpp +++ b/Libraries/LibCore/EventLoop.cpp @@ -296,7 +296,7 @@ void EventLoop::pump(WaitMode mode) events = move(m_queued_events); } - for (int i = 0; i < events.size(); ++i) { + for (size_t i = 0; i < events.size(); ++i) { auto& queued_event = events.at(i); #ifndef __clang__ ASSERT(queued_event.event); diff --git a/Libraries/LibCore/IODevice.cpp b/Libraries/LibCore/IODevice.cpp index aef00b2c6dd..c818286d980 100644 --- a/Libraries/LibCore/IODevice.cpp +++ b/Libraries/LibCore/IODevice.cpp @@ -60,7 +60,7 @@ int IODevice::read(u8* buffer, int length) return read_buffer.size(); } -ByteBuffer IODevice::read(int max_size) +ByteBuffer IODevice::read(size_t max_size) { if (m_fd < 0) return {}; @@ -68,8 +68,8 @@ ByteBuffer IODevice::read(int max_size) return {}; auto buffer = ByteBuffer::create_uninitialized(max_size); auto* buffer_ptr = (char*)buffer.data(); - int remaining_buffer_space = buffer.size(); - int taken_from_buffered = 0; + size_t remaining_buffer_space = buffer.size(); + size_t taken_from_buffered = 0; if (!m_buffered_data.is_empty()) { taken_from_buffered = min(remaining_buffer_space, m_buffered_data.size()); memcpy(buffer_ptr, m_buffered_data.data(), taken_from_buffered); @@ -171,7 +171,7 @@ ByteBuffer IODevice::read_all() return ByteBuffer::copy(data.data(), data.size()); } -ByteBuffer IODevice::read_line(int max_size) +ByteBuffer IODevice::read_line(size_t max_size) { if (m_fd < 0) return {}; @@ -189,7 +189,7 @@ ByteBuffer IODevice::read_line(int max_size) return buffer; } auto line = ByteBuffer::create_uninitialized(max_size + 1); - int line_index = 0; + size_t line_index = 0; while (line_index < max_size) { u8 ch = m_buffered_data[line_index]; line[line_index++] = ch; diff --git a/Libraries/LibCore/IODevice.h b/Libraries/LibCore/IODevice.h index d9f2971769e..081e21f0159 100644 --- a/Libraries/LibCore/IODevice.h +++ b/Libraries/LibCore/IODevice.h @@ -58,8 +58,8 @@ public: int read(u8* buffer, int length); - ByteBuffer read(int max_size); - ByteBuffer read_line(int max_size); + ByteBuffer read(size_t max_size); + ByteBuffer read_line(size_t max_size); ByteBuffer read_all(); bool write(const u8*, int size); diff --git a/Libraries/LibCore/Object.cpp b/Libraries/LibCore/Object.cpp index b22c2df561f..eccdbc967e6 100644 --- a/Libraries/LibCore/Object.cpp +++ b/Libraries/LibCore/Object.cpp @@ -102,7 +102,7 @@ void Object::insert_child_before(Object& new_child, Object& before_child) void Object::remove_child(Object& object) { - for (int i = 0; i < m_children.size(); ++i) { + for (size_t i = 0; i < m_children.size(); ++i) { if (m_children.ptr_at(i).ptr() == &object) { // NOTE: We protect the child so it survives the handling of ChildRemoved. NonnullRefPtr protector = object; diff --git a/Libraries/LibGUI/AbstractTableView.cpp b/Libraries/LibGUI/AbstractTableView.cpp index d6cc4684657..ec94585ba9b 100644 --- a/Libraries/LibGUI/AbstractTableView.cpp +++ b/Libraries/LibGUI/AbstractTableView.cpp @@ -222,7 +222,7 @@ void AbstractTableView::update_headers() AbstractTableView::ColumnData& AbstractTableView::column_data(int column) const { - if (column >= m_column_data.size()) + if (static_cast(column) >= m_column_data.size()) m_column_data.resize(column + 1); return m_column_data.at(column); } diff --git a/Libraries/LibGUI/BoxLayout.cpp b/Libraries/LibGUI/BoxLayout.cpp index 86a8ee98fbb..6a313517af3 100644 --- a/Libraries/LibGUI/BoxLayout.cpp +++ b/Libraries/LibGUI/BoxLayout.cpp @@ -58,9 +58,9 @@ void BoxLayout::run(Widget& widget) if (should_log) dbgprintf("BoxLayout: Starting with available size: %s\n", available_size.to_string().characters()); - int last_entry_with_automatic_size = -1; + Optional last_entry_with_automatic_size; - for (int i = 0; i < m_entries.size(); ++i) { + for (size_t i = 0; i < m_entries.size(); ++i) { auto& entry = m_entries[i]; if (entry.type == Entry::Type::Spacer) { ++number_of_visible_entries; @@ -123,7 +123,7 @@ void BoxLayout::run(Widget& widget) int current_x = margins().left(); int current_y = margins().top(); - for (int i = 0; i < m_entries.size(); ++i) { + for (size_t i = 0; i < m_entries.size(); ++i) { auto& entry = m_entries[i]; if (entry.type == Entry::Type::Spacer) { current_x += automatic_size.width(); @@ -141,7 +141,7 @@ void BoxLayout::run(Widget& widget) } ASSERT(entry.widget); - if (i == last_entry_with_automatic_size) { + if (last_entry_with_automatic_size.has_value() && i == last_entry_with_automatic_size.value()) { rect.set_size(automatic_size_for_last_entry); } else { rect.set_size(automatic_size); diff --git a/Libraries/LibGUI/ColumnsView.cpp b/Libraries/LibGUI/ColumnsView.cpp index e71d86c608b..e446e68ef28 100644 --- a/Libraries/LibGUI/ColumnsView.cpp +++ b/Libraries/LibGUI/ColumnsView.cpp @@ -74,7 +74,7 @@ void ColumnsView::paint_event(PaintEvent& event) int column_x = 0; - for (int i = 0; i < m_columns.size(); i++) { + for (size_t i = 0; i < m_columns.size(); i++) { auto& column = m_columns[i]; auto* next_column = i + 1 == m_columns.size() ? nullptr : &m_columns[i + 1]; diff --git a/Libraries/LibGUI/CppSyntaxHighlighter.cpp b/Libraries/LibGUI/CppSyntaxHighlighter.cpp index 65deef31fbe..acee7903aa9 100644 --- a/Libraries/LibGUI/CppSyntaxHighlighter.cpp +++ b/Libraries/LibGUI/CppSyntaxHighlighter.cpp @@ -72,8 +72,8 @@ void CppSyntaxHighlighter::highlight_matching_token_pair() Backward, }; - auto find_span_of_type = [&](int i, CppToken::Type type, CppToken::Type not_type, Direction direction) { - int nesting_level = 0; + auto find_span_of_type = [&](auto i, CppToken::Type type, CppToken::Type not_type, Direction direction) -> Optional { + size_t nesting_level = 0; bool forward = direction == Direction::Forward; for (forward ? ++i : --i; forward ? (i < document.spans().size()) : (i >= 0); forward ? ++i : --i) { auto& span = document.spans().at(i); @@ -85,7 +85,7 @@ void CppSyntaxHighlighter::highlight_matching_token_pair() return i; } } - return -1; + return {}; }; auto make_buddies = [&](int index0, int index1) { @@ -114,15 +114,15 @@ void CppSyntaxHighlighter::highlight_matching_token_pair() { CppToken::Type::LeftBracket, CppToken::Type::RightBracket }, }; - for (int i = 0; i < document.spans().size(); ++i) { + for (size_t i = 0; i < document.spans().size(); ++i) { auto& span = const_cast(document.spans().at(i)); auto token_type = (CppToken::Type)((uintptr_t)span.data); for (auto& pair : pairs) { if (token_type == pair.open && span.range.start() == m_editor->cursor()) { auto buddy = find_span_of_type(i, pair.close, pair.open, Direction::Forward); - if (buddy != -1) - make_buddies(i, buddy); + if (buddy.has_value()) + make_buddies(i, buddy.value()); return; } } @@ -133,8 +133,8 @@ void CppSyntaxHighlighter::highlight_matching_token_pair() for (auto& pair : pairs) { if (token_type == pair.close && right_of_end == m_editor->cursor()) { auto buddy = find_span_of_type(i, pair.open, pair.close, Direction::Backward); - if (buddy != -1) - make_buddies(i, buddy); + if (buddy.has_value()) + make_buddies(i, buddy.value()); return; } } diff --git a/Libraries/LibGUI/FileSystemModel.cpp b/Libraries/LibGUI/FileSystemModel.cpp index b449a4aa486..e6dd36507c8 100644 --- a/Libraries/LibGUI/FileSystemModel.cpp +++ b/Libraries/LibGUI/FileSystemModel.cpp @@ -44,7 +44,7 @@ ModelIndex FileSystemModel::Node::index(const FileSystemModel& model, int column { if (!parent) return {}; - for (int row = 0; row < parent->children.size(); ++row) { + for (size_t row = 0; row < parent->children.size(); ++row) { if (&parent->children[row] == this) return model.create_index(row, column, const_cast(this)); } @@ -169,7 +169,7 @@ ModelIndex FileSystemModel::index(const StringView& path, int column) const const Node* node = m_root; if (canonical_path.string() == "/") return m_root->index(*this, column); - for (int i = 0; i < canonical_path.parts().size(); ++i) { + for (size_t i = 0; i < canonical_path.parts().size(); ++i) { auto& part = canonical_path.parts()[i]; bool found = false; for (auto& child : node->children) { @@ -318,7 +318,7 @@ ModelIndex FileSystemModel::index(int row, int column, const ModelIndex& parent) return {}; auto& node = this->node(parent); const_cast(node).reify_if_needed(*this); - if (row >= node.children.size()) + if (static_cast(row) >= node.children.size()) return {}; return create_index(row, column, &node.children[row]); } diff --git a/Libraries/LibGUI/JsonArrayModel.cpp b/Libraries/LibGUI/JsonArrayModel.cpp index 26e3754ab32..60305641bf8 100644 --- a/Libraries/LibGUI/JsonArrayModel.cpp +++ b/Libraries/LibGUI/JsonArrayModel.cpp @@ -50,7 +50,7 @@ void JsonArrayModel::update() Model::ColumnMetadata JsonArrayModel::column_metadata(int column) const { - ASSERT(column < m_fields.size()); + ASSERT(column < static_cast(m_fields.size())); return { 100, m_fields[column].text_alignment }; } diff --git a/Libraries/LibGUI/Menu.cpp b/Libraries/LibGUI/Menu.cpp index 45a8485e77e..ce35524aed5 100644 --- a/Libraries/LibGUI/Menu.cpp +++ b/Libraries/LibGUI/Menu.cpp @@ -108,7 +108,7 @@ int Menu::realize_menu() dbgprintf("GUI::Menu::realize_menu(): New menu ID: %d\n", m_menu_id); #endif ASSERT(m_menu_id > 0); - for (int i = 0; i < m_items.size(); ++i) { + for (size_t i = 0; i < m_items.size(); ++i) { auto& item = m_items[i]; item.set_menu_id({}, m_menu_id); item.set_identifier({}, i); @@ -157,7 +157,7 @@ void Menu::unrealize_menu() m_menu_id = 0; } -Action* Menu::action_at(int index) +Action* Menu::action_at(size_t index) { if (index >= m_items.size()) return nullptr; diff --git a/Libraries/LibGUI/Menu.h b/Libraries/LibGUI/Menu.h index d8ebb1dd932..e0516383134 100644 --- a/Libraries/LibGUI/Menu.h +++ b/Libraries/LibGUI/Menu.h @@ -50,7 +50,7 @@ public: const String& name() const { return m_name; } - Action* action_at(int); + Action* action_at(size_t); void add_action(NonnullRefPtr); void add_separator(); diff --git a/Libraries/LibGUI/Shortcut.cpp b/Libraries/LibGUI/Shortcut.cpp index ab7d758b6a9..ece49bd8b9f 100644 --- a/Libraries/LibGUI/Shortcut.cpp +++ b/Libraries/LibGUI/Shortcut.cpp @@ -264,7 +264,7 @@ String Shortcut::to_string() const parts.append(key_code_to_string(m_key)); StringBuilder builder; - for (int i = 0; i < parts.size(); ++i) { + for (size_t i = 0; i < parts.size(); ++i) { builder.append(parts[i]); if (i != parts.size() - 1) builder.append('+'); diff --git a/Libraries/LibGUI/SortingProxyModel.cpp b/Libraries/LibGUI/SortingProxyModel.cpp index 25ebec08ac1..37f7ff0f0a7 100644 --- a/Libraries/LibGUI/SortingProxyModel.cpp +++ b/Libraries/LibGUI/SortingProxyModel.cpp @@ -59,7 +59,7 @@ ModelIndex SortingProxyModel::map_to_target(const ModelIndex& index) const { if (!index.is_valid()) return {}; - if (index.row() >= m_row_mappings.size() || index.column() >= column_count()) + if (static_cast(index.row()) >= m_row_mappings.size() || index.column() >= column_count()) return {}; return target().index(m_row_mappings[index.row()], index.column()); } @@ -143,7 +143,7 @@ void SortingProxyModel::resort() selection.clear(); for (auto& index : selected_indexes_in_target) { - for (int i = 0; i < m_row_mappings.size(); ++i) { + for (size_t i = 0; i < m_row_mappings.size(); ++i) { if (m_row_mappings[i] == index.row()) { selection.add(this->index(i, index.column())); continue; diff --git a/Libraries/LibGUI/SyntaxHighlighter.cpp b/Libraries/LibGUI/SyntaxHighlighter.cpp index 0e19227db03..0b4db76bcc3 100644 --- a/Libraries/LibGUI/SyntaxHighlighter.cpp +++ b/Libraries/LibGUI/SyntaxHighlighter.cpp @@ -24,9 +24,9 @@ void SyntaxHighlighter::cursor_did_change() ASSERT(m_editor); auto& document = m_editor->document(); if (m_has_brace_buddies) { - if (m_brace_buddies[0].index >= 0 && m_brace_buddies[0].index < document.spans().size()) + if (m_brace_buddies[0].index >= 0 && m_brace_buddies[0].index < static_cast(document.spans().size())) document.set_span_at_index(m_brace_buddies[0].index, m_brace_buddies[0].span_backup); - if (m_brace_buddies[1].index >= 0 && m_brace_buddies[1].index < document.spans().size()) + if (m_brace_buddies[1].index >= 0 && m_brace_buddies[1].index < static_cast(document.spans().size())) document.set_span_at_index(m_brace_buddies[1].index, m_brace_buddies[1].span_backup); m_has_brace_buddies = false; m_editor->update(); diff --git a/Libraries/LibGUI/TabWidget.cpp b/Libraries/LibGUI/TabWidget.cpp index 244d9986a13..f3e7a5dcd0e 100644 --- a/Libraries/LibGUI/TabWidget.cpp +++ b/Libraries/LibGUI/TabWidget.cpp @@ -145,19 +145,19 @@ void TabWidget::paint_event(PaintEvent& event) Gfx::StylePainter::paint_frame(painter, container_rect, palette(), Gfx::FrameShape::Container, Gfx::FrameShadow::Raised, 2); - for (int i = 0; i < m_tabs.size(); ++i) { + for (size_t i = 0; i < m_tabs.size(); ++i) { if (m_tabs[i].widget == m_active_widget) continue; - bool hovered = i == m_hovered_tab_index; + bool hovered = static_cast(i) == m_hovered_tab_index; auto button_rect = this->button_rect(i); Gfx::StylePainter::paint_tab_button(painter, button_rect, palette(), false, hovered, m_tabs[i].widget->is_enabled()); painter.draw_text(button_rect.translated(0, 1), m_tabs[i].title, Gfx::TextAlignment::Center, palette().button_text()); } - for (int i = 0; i < m_tabs.size(); ++i) { + for (size_t i = 0; i < m_tabs.size(); ++i) { if (m_tabs[i].widget != m_active_widget) continue; - bool hovered = i == m_hovered_tab_index; + bool hovered = static_cast(i) == m_hovered_tab_index; auto button_rect = this->button_rect(i); Gfx::StylePainter::paint_tab_button(painter, button_rect, palette(), true, hovered, m_tabs[i].widget->is_enabled()); painter.draw_text(button_rect.translated(0, 1), m_tabs[i].title, Gfx::TextAlignment::Center, palette().button_text()); @@ -190,7 +190,7 @@ int TabWidget::TabData::width(const Gfx::Font& font) const void TabWidget::mousedown_event(MouseEvent& event) { - for (int i = 0; i < m_tabs.size(); ++i) { + for (size_t i = 0; i < m_tabs.size(); ++i) { auto button_rect = this->button_rect(i); if (!button_rect.contains(event.position())) continue; @@ -202,7 +202,7 @@ void TabWidget::mousedown_event(MouseEvent& event) void TabWidget::mousemove_event(MouseEvent& event) { int hovered_tab = -1; - for (int i = 0; i < m_tabs.size(); ++i) { + for (size_t i = 0; i < m_tabs.size(); ++i) { auto button_rect = this->button_rect(i); if (!button_rect.contains(event.position())) continue; @@ -243,7 +243,7 @@ void TabWidget::set_tab_position(TabPosition tab_position) int TabWidget::active_tab_index() const { - for (int i = 0; i < m_tabs.size(); i++) { + for (size_t i = 0; i < m_tabs.size(); i++) { if (m_tabs.at(i).widget == m_active_widget) return i; } diff --git a/Libraries/LibGUI/TextDocument.cpp b/Libraries/LibGUI/TextDocument.cpp index 3834419b02e..51d7323cd87 100644 --- a/Libraries/LibGUI/TextDocument.cpp +++ b/Libraries/LibGUI/TextDocument.cpp @@ -389,7 +389,7 @@ Optional TextDocument::first_non_skippable_span_before(const T Optional TextDocument::first_non_skippable_span_after(const TextPosition& position) const { - for (int i = 0; i < m_spans.size(); ++i) { + for (size_t i = 0; i < m_spans.size(); ++i) { if (!m_spans[i].range.contains(position)) continue; while ((i + 1) < m_spans.size() && m_spans[i + 1].is_skippable) diff --git a/Libraries/LibGUI/TextEditor.cpp b/Libraries/LibGUI/TextEditor.cpp index e1ac671cb20..fa501d3f95a 100644 --- a/Libraries/LibGUI/TextEditor.cpp +++ b/Libraries/LibGUI/TextEditor.cpp @@ -1352,7 +1352,7 @@ void TextEditor::recompute_visual_lines(size_t line_index) visual_data.visual_line_breaks.append(line.length()); if (is_line_wrapping_enabled()) - visual_data.visual_rect = { m_horizontal_content_padding, 0, available_width, visual_data.visual_line_breaks.size() * line_height() }; + visual_data.visual_rect = { m_horizontal_content_padding, 0, available_width, static_cast(visual_data.visual_line_breaks.size()) * line_height() }; else visual_data.visual_rect = { m_horizontal_content_padding, 0, font().width(line.view()), line_height() }; } diff --git a/Libraries/LibGUI/UndoStack.cpp b/Libraries/LibGUI/UndoStack.cpp index 61999e6d071..2f8cf6d446b 100644 --- a/Libraries/LibGUI/UndoStack.cpp +++ b/Libraries/LibGUI/UndoStack.cpp @@ -52,7 +52,7 @@ void UndoStack::undo() return; } - for (int i = 0; i < undo_vector.size(); i++) { + for (size_t i = 0; i < undo_vector.size(); i++) { auto& undo_command = undo_vector[i]; undo_command.undo(); } @@ -68,7 +68,7 @@ void UndoStack::redo() auto& undo_container = m_stack[m_stack_index - 1]; auto& redo_vector = undo_container.m_undo_vector; - for (int i = redo_vector.size() - 1; i >= 0; i--) { + for (int i = static_cast(redo_vector.size()) - 1; i >= 0; i--) { auto& undo_command = redo_vector[i]; undo_command.redo(); } @@ -84,7 +84,7 @@ void UndoStack::push(NonnullOwnPtr&& command) } // Clear the elements of the stack before the m_undo_stack_index (Excluding our new element) - for (int i = 1; i < m_stack_index; i++) + for (size_t i = 1; i < m_stack_index; i++) m_stack.remove(1); if (m_stack_index > 0 && !m_stack.is_empty()) diff --git a/Libraries/LibGUI/UndoStack.h b/Libraries/LibGUI/UndoStack.h index 2abc278d21d..e93de4ae02e 100644 --- a/Libraries/LibGUI/UndoStack.h +++ b/Libraries/LibGUI/UndoStack.h @@ -52,8 +52,8 @@ private: }; NonnullOwnPtrVector m_stack; - int m_stack_index { 0 }; - int m_last_updated_undo_vector_size { 0 }; + size_t m_stack_index { 0 }; + size_t m_last_updated_undo_vector_size { 0 }; }; } diff --git a/Libraries/LibGUI/Widget.cpp b/Libraries/LibGUI/Widget.cpp index b8142d10876..17b1a473746 100644 --- a/Libraries/LibGUI/Widget.cpp +++ b/Libraries/LibGUI/Widget.cpp @@ -677,7 +677,7 @@ void Widget::focus_previous_widget() void Widget::focus_next_widget() { auto focusable_widgets = window()->focusable_widgets(); - for (int i = 0; i < focusable_widgets.size(); ++i) { + for (size_t i = 0; i < focusable_widgets.size(); ++i) { if (focusable_widgets[i] != this) continue; if (i < focusable_widgets.size() - 1) diff --git a/Libraries/LibGfx/DisjointRectSet.cpp b/Libraries/LibGfx/DisjointRectSet.cpp index 68270b983bb..9600f65f65b 100644 --- a/Libraries/LibGfx/DisjointRectSet.cpp +++ b/Libraries/LibGfx/DisjointRectSet.cpp @@ -48,9 +48,9 @@ void DisjointRectSet::shatter() do { pass_had_intersections = false; output.clear_with_capacity(); - for (int i = 0; i < m_rects.size(); ++i) { + for (size_t i = 0; i < m_rects.size(); ++i) { auto& r1 = m_rects[i]; - for (int j = 0; j < m_rects.size(); ++j) { + for (size_t j = 0; j < m_rects.size(); ++j) { if (i == j) continue; auto& r2 = m_rects[j]; diff --git a/Libraries/LibGfx/DisjointRectSet.h b/Libraries/LibGfx/DisjointRectSet.h index 538dfc9c4ce..7b1c319141b 100644 --- a/Libraries/LibGfx/DisjointRectSet.h +++ b/Libraries/LibGfx/DisjointRectSet.h @@ -43,7 +43,7 @@ public: void add(const Rect&); bool is_empty() const { return m_rects.is_empty(); } - int size() const { return m_rects.size(); } + size_t size() const { return m_rects.size(); } void clear() { m_rects.clear(); } void clear_with_capacity() { m_rects.clear_with_capacity(); } diff --git a/Libraries/LibGfx/GIFLoader.cpp b/Libraries/LibGfx/GIFLoader.cpp index 2f92afe67e7..2c8c1afd39a 100644 --- a/Libraries/LibGfx/GIFLoader.cpp +++ b/Libraries/LibGfx/GIFLoader.cpp @@ -249,13 +249,13 @@ RefPtr load_gif_impl(const u8* data, size_t data_size) } // We exited the block loop after finding a trailer. We should have everything needed. - printf("Image count: %d\n", images.size()); + printf("Image count: %zu\n", images.size()); if (images.is_empty()) return nullptr; - for (int i = 0; i < images.size(); ++i) { + for (size_t i = 0; i < images.size(); ++i) { auto& image = images.at(i); - printf("Image %d: %d,%d %dx%d %d bytes LZW-encoded\n", i, image.x, image.y, image.width, image.height, image.lzw_encoded_bytes.size()); + printf("Image %zu: %d,%d %dx%d %zu bytes LZW-encoded\n", i, image.x, image.y, image.width, image.height, image.lzw_encoded_bytes.size()); // FIXME: Decode the LZW-encoded bytes and turn them into an image. } diff --git a/Libraries/LibGfx/PNGLoader.cpp b/Libraries/LibGfx/PNGLoader.cpp index d425f24a496..9ca965c421f 100644 --- a/Libraries/LibGfx/PNGLoader.cpp +++ b/Libraries/LibGfx/PNGLoader.cpp @@ -357,9 +357,9 @@ template for (int i = 0; i < context.width; ++i) { auto& pixel = (Pixel&)context.bitmap->scanline(y)[i]; auto& color = context.palette_data.at((int)palette_index[i]); - auto transparency = context.palette_transparency_data.size() >= palette_index[i] + 1 - ? (int)context.palette_transparency_data.data()[palette_index[i]] - : 0xFF; + auto transparency = context.palette_transparency_data.size() >= palette_index[i] + 1u + ? context.palette_transparency_data.data()[palette_index[i]] + : 0xff; pixel.r = color.r; pixel.g = color.g; pixel.b = color.b; diff --git a/Libraries/LibGfx/Painter.cpp b/Libraries/LibGfx/Painter.cpp index 2e85a5184fa..0faa88ad71d 100644 --- a/Libraries/LibGfx/Painter.cpp +++ b/Libraries/LibGfx/Painter.cpp @@ -767,7 +767,7 @@ void Painter::draw_text(const Rect& rect, const StringView& raw_text, const Font static const int line_spacing = 4; int line_height = font.glyph_height() + line_spacing; - Rect bounding_rect { 0, 0, 0, (lines.size() * line_height) - line_spacing }; + Rect bounding_rect { 0, 0, 0, (static_cast(lines.size()) * line_height) - line_spacing }; for (auto& line : lines) { auto line_width = font.width(line); @@ -795,9 +795,9 @@ void Painter::draw_text(const Rect& rect, const StringView& raw_text, const Font ASSERT_NOT_REACHED(); } - for (int i = 0; i < lines.size(); ++i) { + for (size_t i = 0; i < lines.size(); ++i) { auto& line = lines[i]; - Rect line_rect { bounding_rect.x(), bounding_rect.y() + i * line_height, bounding_rect.width(), line_height }; + Rect line_rect { bounding_rect.x(), bounding_rect.y() + static_cast(i) * line_height, bounding_rect.width(), line_height }; line_rect.intersect(rect); draw_text_line(line_rect, line, font, alignment, color, elision); } diff --git a/Libraries/LibHTML/DOM/HTMLFormElement.cpp b/Libraries/LibHTML/DOM/HTMLFormElement.cpp index db1e1f6edb8..20bcf4ec8a7 100644 --- a/Libraries/LibHTML/DOM/HTMLFormElement.cpp +++ b/Libraries/LibHTML/DOM/HTMLFormElement.cpp @@ -68,7 +68,7 @@ void HTMLFormElement::submit() }); StringBuilder builder; - for (int i = 0; i < parameters.size(); ++i) { + for (size_t i = 0; i < parameters.size(); ++i) { builder.append(parameters[i].name); builder.append('='); builder.append(parameters[i].value); diff --git a/Libraries/LibHTML/Dump.cpp b/Libraries/LibHTML/Dump.cpp index c1fa778eb67..fcdfe163600 100644 --- a/Libraries/LibHTML/Dump.cpp +++ b/Libraries/LibHTML/Dump.cpp @@ -69,8 +69,8 @@ void dump_tree(const Node& node) void dump_tree(const LayoutNode& layout_node) { - static int indent = 0; - for (int i = 0; i < indent; ++i) + static size_t indent = 0; + for (size_t i = 0; i < indent; ++i) dbgprintf(" "); String tag_name; @@ -122,17 +122,17 @@ void dump_tree(const LayoutNode& layout_node) if (layout_node.is_block() && static_cast(layout_node).children_are_inline()) { auto& block = static_cast(layout_node); - for (int i = 0; i < indent; ++i) + for (size_t i = 0; i < indent; ++i) dbgprintf(" "); dbgprintf(" Line boxes (%d):\n", block.line_boxes().size()); - for (int line_box_index = 0; line_box_index < block.line_boxes().size(); ++line_box_index) { + for (size_t line_box_index = 0; line_box_index < block.line_boxes().size(); ++line_box_index) { auto& line_box = block.line_boxes()[line_box_index]; - for (int i = 0; i < indent; ++i) + for (size_t i = 0; i < indent; ++i) dbgprintf(" "); dbgprintf(" [%d] width: %g\n", line_box_index, line_box.width()); - for (int fragment_index = 0; fragment_index < line_box.fragments().size(); ++fragment_index) { + for (size_t fragment_index = 0; fragment_index < line_box.fragments().size(); ++fragment_index) { auto& fragment = line_box.fragments()[fragment_index]; - for (int i = 0; i < indent; ++i) + for (size_t i = 0; i < indent; ++i) dbgprintf(" "); dbgprintf(" [%d] layout_node: %s{%p}, start: %d, length: %d, rect: %s\n", fragment_index, @@ -142,7 +142,7 @@ void dump_tree(const LayoutNode& layout_node) fragment.length(), fragment.rect().to_string().characters()); if (fragment.layout_node().is_text()) { - for (int i = 0; i < indent; ++i) + for (size_t i = 0; i < indent; ++i) dbgprintf(" "); auto& layout_text = static_cast(fragment.layout_node()); auto fragment_text = layout_text.text_for_rendering().substring(fragment.start(), fragment.length()); @@ -153,7 +153,7 @@ void dump_tree(const LayoutNode& layout_node) } layout_node.style().for_each_property([&](auto property_id, auto& value) { - for (int i = 0; i < indent; ++i) + for (size_t i = 0; i < indent; ++i) dbgprintf(" "); dbgprintf(" (%s: %s)\n", CSS::string_from_property_id(property_id), value.to_string().characters()); }); @@ -195,7 +195,7 @@ void dump_rule(const StyleRule& rule) if (*relation_description) dbgprintf("{%s} ", relation_description); - for (int i = 0; i < complex_selector.compound_selector.size(); ++i) { + for (size_t i = 0; i < complex_selector.compound_selector.size(); ++i) { auto& simple_selector = complex_selector.compound_selector[i]; const char* type_description = "Unknown"; switch (simple_selector.type) { diff --git a/Libraries/LibHTML/Layout/LayoutBlock.cpp b/Libraries/LibHTML/Layout/LayoutBlock.cpp index 570b1f762ac..7fab79726b3 100644 --- a/Libraries/LibHTML/Layout/LayoutBlock.cpp +++ b/Libraries/LibHTML/Layout/LayoutBlock.cpp @@ -143,7 +143,7 @@ void LayoutBlock::layout_inline_children() float justified_space_width = whitespace_count ? (excess_horizontal_space_including_whitespace / (float)whitespace_count) : 0; - for (int i = 0; i < line_box.fragments().size(); ++i) { + for (size_t i = 0; i < line_box.fragments().size(); ++i) { auto& fragment = line_box.fragments()[i]; // Vertically align everyone's bottom to the line. // FIXME: Support other kinds of vertical alignment. @@ -156,7 +156,7 @@ void LayoutBlock::layout_inline_children() float diff = justified_space_width - fragment.rect().width(); fragment.rect().set_width(justified_space_width); // Shift subsequent sibling fragments to the right to adjust for change in width. - for (int j = i + 1; j < line_box.fragments().size(); ++j) { + for (size_t j = i + 1; j < line_box.fragments().size(); ++j) { line_box.fragments()[j].rect().move_by(diff, 0); } } diff --git a/Libraries/LibHTML/Layout/LayoutText.cpp b/Libraries/LibHTML/Layout/LayoutText.cpp index f97d856cb3d..ac3ca91e283 100644 --- a/Libraries/LibHTML/Layout/LayoutText.cpp +++ b/Libraries/LibHTML/Layout/LayoutText.cpp @@ -203,7 +203,7 @@ void LayoutText::split_into_lines(LayoutBlock& container) words.append({ Utf8View(view), start, length }); }); - for (int i = 0; i < words.size(); ++i) { + for (size_t i = 0; i < words.size(); ++i) { auto& word = words[i]; float word_width; diff --git a/Libraries/LibIPC/ClientConnection.h b/Libraries/LibIPC/ClientConnection.h index 8e129d7416d..12207e4a2b8 100644 --- a/Libraries/LibIPC/ClientConnection.h +++ b/Libraries/LibIPC/ClientConnection.h @@ -125,7 +125,7 @@ public: } } - ASSERT(nwritten == buffer.size()); + ASSERT(static_cast(nwritten) == buffer.size()); } void drain_messages_from_client() diff --git a/Libraries/LibIPC/ServerConnection.h b/Libraries/LibIPC/ServerConnection.h index 04dc09641f4..db3bb53affa 100644 --- a/Libraries/LibIPC/ServerConnection.h +++ b/Libraries/LibIPC/ServerConnection.h @@ -89,7 +89,7 @@ public: { // Double check we don't already have the event waiting for us. // Otherwise we might end up blocked for a while for no reason. - for (ssize_t i = 0; i < m_unprocessed_messages.size(); ++i) { + for (size_t i = 0; i < m_unprocessed_messages.size(); ++i) { if (m_unprocessed_messages[i]->message_id() == MessageType::static_message_id()) { auto message = move(m_unprocessed_messages[i]); m_unprocessed_messages.remove(i); @@ -108,7 +108,7 @@ public: ASSERT(FD_ISSET(m_connection->fd(), &rfds)); if (!drain_messages_from_server()) return nullptr; - for (ssize_t i = 0; i < m_unprocessed_messages.size(); ++i) { + for (size_t i = 0; i < m_unprocessed_messages.size(); ++i) { if (m_unprocessed_messages[i]->message_id() == MessageType::static_message_id()) { auto message = move(m_unprocessed_messages[i]); m_unprocessed_messages.remove(i); @@ -127,7 +127,7 @@ public: ASSERT_NOT_REACHED(); return false; } - ASSERT(nwritten == buffer.size()); + ASSERT(static_cast(nwritten) == buffer.size()); return true; } diff --git a/Libraries/LibMarkdown/MDText.cpp b/Libraries/LibMarkdown/MDText.cpp index 9c521553a4c..c75b26556ea 100644 --- a/Libraries/LibMarkdown/MDText.cpp +++ b/Libraries/LibMarkdown/MDText.cpp @@ -212,7 +212,7 @@ bool MDText::parse(const StringView& str) while (offset < str.length() && str[offset] != ')'); const StringView href = str.substring_view(start_of_href, offset - start_of_href); - for (int i = first_span_in_the_current_link; i < m_spans.size(); i++) + for (size_t i = first_span_in_the_current_link; i < m_spans.size(); i++) m_spans[i].style.href = href; first_span_in_the_current_link = -1; break; diff --git a/Libraries/LibVT/Terminal.cpp b/Libraries/LibVT/Terminal.cpp index 05dc2e5959d..23406aac6f8 100644 --- a/Libraries/LibVT/Terminal.cpp +++ b/Libraries/LibVT/Terminal.cpp @@ -961,12 +961,12 @@ void Terminal::unimplemented_escape() builder.appendf("((Unimplemented escape: %c", m_final); if (!m_parameters.is_empty()) { builder.append(" parameters:"); - for (int i = 0; i < m_parameters.size(); ++i) + for (size_t i = 0; i < m_parameters.size(); ++i) builder.append((char)m_parameters[i]); } if (!m_intermediates.is_empty()) { builder.append(" intermediates:"); - for (int i = 0; i < m_intermediates.size(); ++i) + for (size_t i = 0; i < m_intermediates.size(); ++i) builder.append((char)m_intermediates[i]); } builder.append("))"); diff --git a/Libraries/LibVT/Terminal.h b/Libraries/LibVT/Terminal.h index 26e65749b1a..8c7bc7a25b2 100644 --- a/Libraries/LibVT/Terminal.h +++ b/Libraries/LibVT/Terminal.h @@ -128,7 +128,7 @@ public: return m_lines[index]; } - int max_history_size() const { return 500; } + size_t max_history_size() const { return 500; } const NonnullOwnPtrVector& history() const { return m_history; } void inject_string(const StringView&); @@ -184,8 +184,8 @@ private: NonnullOwnPtrVector m_history; NonnullOwnPtrVector m_lines; - int m_scroll_region_top { 0 }; - int m_scroll_region_bottom { 0 }; + size_t m_scroll_region_top { 0 }; + size_t m_scroll_region_bottom { 0 }; u16 m_columns { 1 }; u16 m_rows { 1 }; diff --git a/Servers/SystemServer/Service.cpp b/Servers/SystemServer/Service.cpp index 958dd854a00..6999c14d997 100644 --- a/Servers/SystemServer/Service.cpp +++ b/Servers/SystemServer/Service.cpp @@ -241,7 +241,7 @@ void Service::spawn() char* argv[m_extra_arguments.size() + 2]; argv[0] = const_cast(m_executable_path.characters()); - for (int i = 0; i < m_extra_arguments.size(); i++) + for (size_t i = 0; i < m_extra_arguments.size(); i++) argv[i + 1] = const_cast(m_extra_arguments[i].characters()); argv[m_extra_arguments.size() + 1] = nullptr; diff --git a/Servers/WindowServer/AppletManager.cpp b/Servers/WindowServer/AppletManager.cpp index 13ca6bfb756..aeabfae990a 100644 --- a/Servers/WindowServer/AppletManager.cpp +++ b/Servers/WindowServer/AppletManager.cpp @@ -72,10 +72,11 @@ void AppletManager::add_applet(Window& applet) m_applets.append(applet.make_weak_ptr()); quick_sort(m_applets.begin(), m_applets.end(), [](auto& a, auto& b) { - int index_a = order_vector.find_first_index(a->title()); - int index_b = order_vector.find_first_index(b->title()); - - return index_a > index_b; + auto index_a = order_vector.find_first_index(a->title()); + auto index_b = order_vector.find_first_index(b->title()); + ASSERT(index_a.has_value()); + ASSERT(index_b.has_value()); + return index_a.value() > index_b.value(); }); calculate_applet_rects(MenuManager::the().window()); diff --git a/Servers/WindowServer/ClientConnection.cpp b/Servers/WindowServer/ClientConnection.cpp index 766dbcd9640..2e9650485a8 100644 --- a/Servers/WindowServer/ClientConnection.cpp +++ b/Servers/WindowServer/ClientConnection.cpp @@ -482,7 +482,7 @@ void ClientConnection::handle(const Messages::WindowServer::InvalidateRect& mess return; } auto& window = *(*it).value; - for (int i = 0; i < message.rects().size(); ++i) + for (size_t i = 0; i < message.rects().size(); ++i) window.request_update(message.rects()[i].intersected({ {}, window.size() }), message.ignore_occlusion()); } diff --git a/Servers/WindowServer/Menu.cpp b/Servers/WindowServer/Menu.cpp index 56874ce2105..779012b8ecb 100644 --- a/Servers/WindowServer/Menu.cpp +++ b/Servers/WindowServer/Menu.cpp @@ -403,7 +403,7 @@ void Menu::event(Core::Event& event) --m_hovered_item_index; } while (hovered_item()->type() == MenuItem::Separator); - ASSERT(m_hovered_item_index >= 0 && m_hovered_item_index <= m_items.size() - 1); + ASSERT(m_hovered_item_index >= 0 && m_hovered_item_index <= static_cast(m_items.size()) - 1); if (is_scrollable() && m_hovered_item_index < m_scroll_offset) --m_scroll_offset; @@ -415,17 +415,17 @@ void Menu::event(Core::Event& event) if (key == Key_Down) { ASSERT(m_items.at(0).type() != MenuItem::Separator); - if (is_scrollable() && m_hovered_item_index == m_items.size() - 1) + if (is_scrollable() && m_hovered_item_index == static_cast(m_items.size()) - 1) return; do { - if (m_hovered_item_index == m_items.size() - 1) + if (m_hovered_item_index == static_cast(m_items.size()) - 1) m_hovered_item_index = 0; else ++m_hovered_item_index; } while (hovered_item()->type() == MenuItem::Separator); - ASSERT(m_hovered_item_index >= 0 && m_hovered_item_index <= m_items.size() - 1); + ASSERT(m_hovered_item_index >= 0 && m_hovered_item_index <= static_cast(m_items.size()) - 1); if (is_scrollable() && m_hovered_item_index >= (m_scroll_offset + visible_item_count())) ++m_scroll_offset; diff --git a/Servers/WindowServer/MenuManager.cpp b/Servers/WindowServer/MenuManager.cpp index 554b1d07772..8aca8bdcd3a 100644 --- a/Servers/WindowServer/MenuManager.cpp +++ b/Servers/WindowServer/MenuManager.cpp @@ -67,7 +67,7 @@ MenuManager::~MenuManager() bool MenuManager::is_open(const Menu& menu) const { - for (int i = 0; i < m_open_menu_stack.size(); ++i) { + for (size_t i = 0; i < m_open_menu_stack.size(); ++i) { if (&menu == m_open_menu_stack[i].ptr()) return true; } diff --git a/Servers/WindowServer/WindowSwitcher.cpp b/Servers/WindowServer/WindowSwitcher.cpp index e53dbdafcd0..24f4ab60d9f 100644 --- a/Servers/WindowServer/WindowSwitcher.cpp +++ b/Servers/WindowServer/WindowSwitcher.cpp @@ -66,7 +66,7 @@ void WindowSwitcher::set_visible(bool visible) Window* WindowSwitcher::selected_window() { - if (m_selected_index < 0 || m_selected_index >= m_windows.size()) + if (m_selected_index < 0 || m_selected_index >= static_cast(m_windows.size())) return nullptr; return m_windows[m_selected_index].ptr(); } @@ -78,7 +78,7 @@ void WindowSwitcher::event(Core::Event& event) auto& mouse_event = static_cast(event); int new_hovered_index = -1; - for (int i = 0; i < m_windows.size(); ++i) { + for (size_t i = 0; i < m_windows.size(); ++i) { auto item_rect = this->item_rect(i); if (item_rect.contains(mouse_event.position())) { new_hovered_index = i; @@ -128,20 +128,20 @@ void WindowSwitcher::on_key_event(const KeyEvent& event) int new_selected_index; if (!event.shift()) { - new_selected_index = (m_selected_index + 1) % m_windows.size(); + new_selected_index = (m_selected_index + 1) % static_cast(m_windows.size()); } else { - new_selected_index = (m_selected_index - 1) % m_windows.size(); + new_selected_index = (m_selected_index - 1) % static_cast(m_windows.size()); if (new_selected_index < 0) - new_selected_index = m_windows.size() - 1; + new_selected_index = static_cast(m_windows.size()) - 1; } - ASSERT(new_selected_index < m_windows.size()); + ASSERT(new_selected_index < static_cast(m_windows.size())); select_window_at_index(new_selected_index); } void WindowSwitcher::select_window(Window& window) { - for (int i = 0; i < m_windows.size(); ++i) { + for (size_t i = 0; i < m_windows.size(); ++i) { if (m_windows.at(i) == &window) { select_window_at_index(i); return; @@ -180,17 +180,17 @@ void WindowSwitcher::draw() Gfx::Painter painter(*m_switcher_window->backing_store()); painter.fill_rect({ {}, m_rect.size() }, palette.window()); painter.draw_rect({ {}, m_rect.size() }, palette.threed_shadow2()); - for (int index = 0; index < m_windows.size(); ++index) { + for (size_t index = 0; index < m_windows.size(); ++index) { auto& window = *m_windows.at(index); auto item_rect = this->item_rect(index); Color text_color; Color rect_text_color; - if (index == m_selected_index) { + if (static_cast(index) == m_selected_index) { painter.fill_rect(item_rect, palette.selection()); text_color = palette.selection_text(); rect_text_color = palette.threed_shadow1(); } else { - if (index == m_hovered_index) + if (static_cast(index) == m_hovered_index) Gfx::StylePainter::paint_button(painter, item_rect, palette, Gfx::ButtonStyle::CoolBar, false, true); text_color = palette.window_text(); rect_text_color = palette.threed_shadow2(); diff --git a/Shell/LineEditor.cpp b/Shell/LineEditor.cpp index c9f601288cc..27336bb9543 100644 --- a/Shell/LineEditor.cpp +++ b/Shell/LineEditor.cpp @@ -162,7 +162,7 @@ Vector LineEditor::tab_complete_first_token(const String& token) cut_mismatching_chars(completion, m_path[i], token.length()); seen_others = true; } - for (int i = index + 1; i < m_path.size() && m_path[i].starts_with(token); ++i) { + for (size_t i = index + 1; i < m_path.size() && m_path[i].starts_with(token); ++i) { cut_mismatching_chars(completion, m_path[i], token.length()); suggestions.append(m_path[i]); seen_others = true; @@ -433,7 +433,7 @@ String LineEditor::get_line(const String& prompt) size_t num_printed = 0; putchar('\n'); for (auto& suggestion : suggestions) { - int next_column = num_printed + suggestion.length() + longest_suggestion_length + 2; + size_t next_column = num_printed + suggestion.length() + longest_suggestion_length + 2; if (next_column > m_num_columns) { putchar('\n'); @@ -498,7 +498,7 @@ String LineEditor::get_line(const String& prompt) if (ch == 0xc) { // ^L printf("\033[3J\033[H\033[2J"); // Clear screen. fputs(prompt.characters(), stdout); - for (int i = 0; i < m_buffer.size(); ++i) + for (size_t i = 0; i < m_buffer.size(); ++i) fputc(m_buffer[i], stdout); if (m_cursor < (size_t)m_buffer.size()) printf("\033[%zuD", (size_t)m_buffer.size() - m_cursor); // Move cursor N steps left. diff --git a/Shell/LineEditor.h b/Shell/LineEditor.h index 63ecb738635..0b1dc245103 100644 --- a/Shell/LineEditor.h +++ b/Shell/LineEditor.h @@ -59,13 +59,13 @@ private: Vector m_buffer; size_t m_cursor { 0 }; - int m_times_tab_pressed { 0 }; - int m_num_columns { 0 }; + size_t m_times_tab_pressed { 0 }; + size_t m_num_columns { 0 }; // FIXME: This should be something more take_first()-friendly. Vector m_history; - int m_history_cursor { 0 }; - int m_history_capacity { 100 }; + size_t m_history_cursor { 0 }; + size_t m_history_capacity { 100 }; Vector m_path; diff --git a/Shell/main.cpp b/Shell/main.cpp index 65b9d719d02..420b4500718 100644 --- a/Shell/main.cpp +++ b/Shell/main.cpp @@ -241,8 +241,8 @@ static int sh_cd(int argc, const char** argv) static int sh_history(int, const char**) { - for (int i = 0; i < editor.history().size(); ++i) { - printf("%6d %s\n", i, editor.history()[i].characters()); + for (size_t i = 0; i < editor.history().size(); ++i) { + printf("%6zu %s\n", i, editor.history()[i].characters()); } return 0; } @@ -452,7 +452,7 @@ static int sh_dirs(int argc, const char** argv) for (int i = 0; i < argc; i++) { const char* arg = argv[i]; if (!strcmp(arg, "-c")) { - for (int i = 1; i < g.directory_stack.size(); i++) + for (size_t i = 1; i < g.directory_stack.size(); i++) g.directory_stack.remove(i); printed = true; @@ -605,7 +605,7 @@ static Vector expand_globs(const StringView& path, const StringView& bas builder.append(base); Vector res; - for (int i = 0; i < parts.size(); ++i) { + for (size_t i = 0; i < parts.size(); ++i) { auto& part = parts[i]; if (!is_glob(part)) { builder.append(part); @@ -758,7 +758,7 @@ static int run_command(const String& cmd) FileDescriptionCollector fds; - for (int i = 0; i < command.subcommands.size(); ++i) { + for (size_t i = 0; i < command.subcommands.size(); ++i) { auto& subcommand = command.subcommands[i]; for (auto& redirection : subcommand.redirections) { switch (redirection.type) { @@ -814,7 +814,7 @@ static int run_command(const String& cmd) CommandTimer timer(cmd); - for (int i = 0; i < command.subcommands.size(); ++i) { + for (size_t i = 0; i < command.subcommands.size(); ++i) { auto& subcommand = command.subcommands[i]; Vector argv_string = process_arguments(subcommand.args); Vector argv; @@ -879,7 +879,7 @@ static int run_command(const String& cmd) int wstatus = 0; - for (int i = 0; i < children.size(); ++i) { + for (size_t i = 0; i < children.size(); ++i) { auto& child = children[i]; do { int rc = waitpid(child.pid, &wstatus, WEXITED | WSTOPPED); diff --git a/Userland/disk_benchmark.cpp b/Userland/disk_benchmark.cpp index 8311e152381..94f18d32d41 100644 --- a/Userland/disk_benchmark.cpp +++ b/Userland/disk_benchmark.cpp @@ -128,7 +128,7 @@ int main(int argc, char** argv) usleep(100); } auto average = average_result(results); - printf("\nFinished: runs=%d time=%dms write_bps=%llu read_bps=%llu\n", results.size(), timer.elapsed(), average.write_bps, average.read_bps); + printf("\nFinished: runs=%zu time=%dms write_bps=%llu read_bps=%llu\n", results.size(), timer.elapsed(), average.write_bps, average.read_bps); sleep(1); } diff --git a/Userland/gron.cpp b/Userland/gron.cpp index 76892142b33..877327d417c 100644 --- a/Userland/gron.cpp +++ b/Userland/gron.cpp @@ -92,7 +92,7 @@ int main(int argc, char** argv) static void print(const String& name, const JsonValue& value, Vector& trail) { - for (int i = 0; i < trail.size(); ++i) + for (size_t i = 0; i < trail.size(); ++i) printf("%s", trail[i].characters()); printf("%s%s%s = ", color_name, name.characters(), color_off); diff --git a/Userland/ls.cpp b/Userland/ls.cpp index c2804344e80..bb22bf73923 100644 --- a/Userland/ls.cpp +++ b/Userland/ls.cpp @@ -145,9 +145,9 @@ int print_escaped(const char* name) return printed; } -int print_name(const struct stat& st, const String& name, const char* path_for_link_resolution = nullptr) +size_t print_name(const struct stat& st, const String& name, const char* path_for_link_resolution = nullptr) { - int nprinted = 0; + size_t nprinted = 0; if (!flag_colorize || !output_is_terminal) { nprinted = printf("%s", name.characters()); @@ -345,7 +345,7 @@ int do_file_system_object_long(const char* path) return 0; } -bool print_filesystem_object_short(const char* path, const char* name, int* nprinted) +bool print_filesystem_object_short(const char* path, const char* name, size_t* nprinted) { struct stat st; int rc = lstat(path, &st); @@ -363,7 +363,7 @@ int do_file_system_object_short(const char* path) Core::DirIterator di(path, !flag_show_dotfiles ? Core::DirIterator::SkipDots : Core::DirIterator::Flags::NoFlags); if (di.has_error()) { if (di.error() == ENOTDIR) { - int nprinted; + size_t nprinted = 0; bool status = print_filesystem_object_short(path, path, &nprinted); printf("\n"); if (status) @@ -385,8 +385,8 @@ int do_file_system_object_short(const char* path) quick_sort(names.begin(), names.end(), [](auto& a, auto& b) { return a < b; }); size_t printed_on_row = 0; - int nprinted; - for (int i = 0; i < names.size(); ++i) { + size_t nprinted = 0; + for (size_t i = 0; i < names.size(); ++i) { auto& name = names[i]; StringBuilder builder; builder.append(path); @@ -404,7 +404,7 @@ int do_file_system_object_short(const char* path) size_t column_width = longest_name + (offset > 0 ? offset : 2); printed_on_row += column_width; - for (int j = nprinted; i != (names.size() - 1) && j < (int)column_width; ++j) + for (size_t j = nprinted; i != (names.size() - 1) && j < column_width; ++j) printf(" "); if ((printed_on_row + column_width) >= terminal_columns) { printf("\n"); diff --git a/Userland/tee.cpp b/Userland/tee.cpp index f1b59f3c6e9..92c58c7031c 100644 --- a/Userland/tee.cpp +++ b/Userland/tee.cpp @@ -73,7 +73,7 @@ static void copy_stdin(Vector& fds, bool* err) } Vector broken_fds; - for (int i = 0; i < fds.size(); ++i) { + for (size_t i = 0; i < fds.size(); ++i) { auto fd = fds.at(i); int twrite = 0; while (twrite != nread) {