diff options
author | Robin Burchell <robin+git@viroteck.net> | 2019-06-02 12:26:28 +0200 |
---|---|---|
committer | Andreas Kling <awesomekling@gmail.com> | 2019-06-02 12:55:51 +0200 |
commit | 7bce096afdf182216c9da4c94765e12662188c98 (patch) | |
tree | b29607bbf3ad02d151f7a4ad7ca920636aaefb74 | |
parent | b55b6cd7fcaa8518e4901d4ec5bd0a9da5b28fc0 (diff) | |
download | serenity-7bce096afdf182216c9da4c94765e12662188c98.zip |
Take StringView in more places
We should work towards a pattern where we take StringView as function
arguments, and store String as member, to push the String construction
to the last possible moment.
-rw-r--r-- | AK/AKString.h | 6 | ||||
-rw-r--r-- | AK/BufferStream.h | 10 | ||||
-rw-r--r-- | AK/FileSystemPath.cpp | 2 | ||||
-rw-r--r-- | AK/FileSystemPath.h | 2 | ||||
-rw-r--r-- | AK/String.cpp | 10 | ||||
-rw-r--r-- | AK/StringBuilder.cpp | 2 | ||||
-rw-r--r-- | AK/StringBuilder.h | 2 | ||||
-rw-r--r-- | Applications/FileManager/DirectoryView.cpp | 6 | ||||
-rw-r--r-- | Applications/FileManager/DirectoryView.h | 10 | ||||
-rw-r--r-- | Applications/FileManager/main.cpp | 4 | ||||
-rw-r--r-- | LibCore/CDirIterator.cpp | 2 | ||||
-rw-r--r-- | LibCore/CDirIterator.h | 2 | ||||
-rw-r--r-- | LibCore/CFile.cpp | 2 | ||||
-rw-r--r-- | LibCore/CFile.h | 4 |
14 files changed, 28 insertions, 36 deletions
diff --git a/AK/AKString.h b/AK/AKString.h index a2a972ebf9..e75172a870 100644 --- a/AK/AKString.h +++ b/AK/AKString.h @@ -87,7 +87,7 @@ public: }; static String repeated(char, int count); - bool matches(const String& pattern, CaseSensitivity = CaseSensitivity::CaseInsensitive) const; + bool matches(const StringView& pattern, CaseSensitivity = CaseSensitivity::CaseInsensitive) const; int to_int(bool& ok) const; unsigned to_uint(bool& ok) const; @@ -122,7 +122,7 @@ public: return (*m_impl)[i]; } - bool ends_with(const String&) const; + bool ends_with(const StringView&) const; bool operator==(const String&) const; bool operator!=(const String& other) const { return !(*this == other); } @@ -166,7 +166,7 @@ public: StringView view() const { return { characters(), length() }; } private: - bool match_helper(const String& mask) const; + bool match_helper(const StringView& mask) const; RetainPtr<StringImpl> m_impl; }; diff --git a/AK/BufferStream.h b/AK/BufferStream.h index db2907963f..7edc9f6e65 100644 --- a/AK/BufferStream.h +++ b/AK/BufferStream.h @@ -36,15 +36,7 @@ public: m_buffer[m_offset++] = (byte)(value >> 24) & 0xffu; } - void operator<<(const char* str) - { - ssize_t len = strlen(str); - ASSERT(len >= 0); - for (ssize_t i = 0; i < len; ++i) - m_buffer[m_offset++] = str[i]; - } - - void operator<<(const String& value) + void operator<<(const StringView& value) { for (ssize_t i = 0; i < value.length(); ++i) m_buffer[m_offset++] = value[i]; diff --git a/AK/FileSystemPath.cpp b/AK/FileSystemPath.cpp index 07d8d5ea82..fbef784160 100644 --- a/AK/FileSystemPath.cpp +++ b/AK/FileSystemPath.cpp @@ -5,7 +5,7 @@ namespace AK { -FileSystemPath::FileSystemPath(const String& s) +FileSystemPath::FileSystemPath(const StringView& s) : m_string(s) { m_is_valid = canonicalize(); diff --git a/AK/FileSystemPath.h b/AK/FileSystemPath.h index b62160a526..d985baded1 100644 --- a/AK/FileSystemPath.h +++ b/AK/FileSystemPath.h @@ -7,7 +7,7 @@ namespace AK { class FileSystemPath { public: FileSystemPath() {} - explicit FileSystemPath(const String&); + explicit FileSystemPath(const StringView&); bool is_valid() const { return m_is_valid; } String string() const { return m_string; } diff --git a/AK/String.cpp b/AK/String.cpp index ed3943318c..8bfc787686 100644 --- a/AK/String.cpp +++ b/AK/String.cpp @@ -175,7 +175,7 @@ String String::format(const char* fmt, ...) return builder.to_string(); } -bool String::ends_with(const String& str) const +bool String::ends_with(const StringView& str) const { if (str.is_empty()) return true; @@ -196,20 +196,20 @@ String String::repeated(char ch, int count) return *impl; } -bool String::matches(const String& mask, CaseSensitivity case_sensitivity) const +bool String::matches(const StringView& mask, CaseSensitivity case_sensitivity) const { if (case_sensitivity == CaseSensitivity::CaseInsensitive) { String this_lower = this->to_lowercase(); - String mask_lower = mask.to_lowercase(); + String mask_lower = String(mask).to_lowercase(); return this_lower.match_helper(mask_lower); } return match_helper(mask); } -bool String::match_helper(const String& mask) const +bool String::match_helper(const StringView& mask) const { - if (is_null() || mask.is_null()) + if (is_null()) return false; const char* string_ptr = characters(); diff --git a/AK/StringBuilder.cpp b/AK/StringBuilder.cpp index 0fe550242e..6f6a86de26 100644 --- a/AK/StringBuilder.cpp +++ b/AK/StringBuilder.cpp @@ -16,7 +16,7 @@ StringBuilder::StringBuilder(ssize_t initial_capacity) m_buffer.grow(initial_capacity); } -void StringBuilder::append(const String& str) +void StringBuilder::append(const StringView& str) { if (str.is_empty()) return; diff --git a/AK/StringBuilder.h b/AK/StringBuilder.h index 700540942a..65bc8e2c07 100644 --- a/AK/StringBuilder.h +++ b/AK/StringBuilder.h @@ -11,7 +11,7 @@ public: explicit StringBuilder(ssize_t initial_capacity = 16); ~StringBuilder() {} - void append(const String&); + void append(const StringView&); void append(char); void append(const char*, ssize_t); void appendf(const char*, ...); diff --git a/Applications/FileManager/DirectoryView.cpp b/Applications/FileManager/DirectoryView.cpp index cf8187ecd4..9d13de521b 100644 --- a/Applications/FileManager/DirectoryView.cpp +++ b/Applications/FileManager/DirectoryView.cpp @@ -108,7 +108,7 @@ void DirectoryView::set_view_mode(ViewMode mode) ASSERT_NOT_REACHED(); } -void DirectoryView::add_path_to_history(const String& path) +void DirectoryView::add_path_to_history(const StringView& path) { if (m_path_history_position < m_path_history.size()) m_path_history.resize(m_path_history_position + 1); @@ -117,13 +117,13 @@ void DirectoryView::add_path_to_history(const String& path) m_path_history_position = m_path_history.size() - 1; } -void DirectoryView::open(const String& path) +void DirectoryView::open(const StringView& path) { add_path_to_history(path); model().open(path); } -void DirectoryView::set_status_message(const String& message) +void DirectoryView::set_status_message(const StringView& message) { if (on_status_message) on_status_message(message); diff --git a/Applications/FileManager/DirectoryView.h b/Applications/FileManager/DirectoryView.h index c494419e5d..fa8d7cba10 100644 --- a/Applications/FileManager/DirectoryView.h +++ b/Applications/FileManager/DirectoryView.h @@ -12,7 +12,7 @@ public: explicit DirectoryView(GWidget* parent); virtual ~DirectoryView() override; - void open(const String& path); + void open(const StringView& path); String path() const { return model().path(); } void open_parent_directory(); void open_previous_directory(); @@ -22,8 +22,8 @@ public: void refresh(); - Function<void(const String&)> on_path_change; - Function<void(String)> on_status_message; + Function<void(const StringView&)> on_path_change; + Function<void(const StringView&)> on_status_message; Function<void(int done, int total)> on_thumbnail_progress; enum ViewMode @@ -41,14 +41,14 @@ private: void handle_activation(const GModelIndex&); - void set_status_message(const String&); + void set_status_message(const StringView&); ViewMode m_view_mode { Invalid }; Retained<GDirectoryModel> m_model; int m_path_history_position { 0 }; Vector<String> m_path_history; - void add_path_to_history(const String& path); + void add_path_to_history(const StringView& path); GTableView* m_table_view { nullptr }; GItemView* m_item_view { nullptr }; diff --git a/Applications/FileManager/main.cpp b/Applications/FileManager/main.cpp index 7c6fe3bc73..258f178b5d 100644 --- a/Applications/FileManager/main.cpp +++ b/Applications/FileManager/main.cpp @@ -199,8 +199,8 @@ int main(int argc, char** argv) go_back_action->set_enabled(directory_view->path_history_position() > 0); }; - directory_view->on_status_message = [statusbar] (String message) { - statusbar->set_text(move(message)); + directory_view->on_status_message = [statusbar] (const StringView& message) { + statusbar->set_text(message); }; directory_view->on_thumbnail_progress = [&] (int done, int total) { diff --git a/LibCore/CDirIterator.cpp b/LibCore/CDirIterator.cpp index aa64ea8b71..d76d52970d 100644 --- a/LibCore/CDirIterator.cpp +++ b/LibCore/CDirIterator.cpp @@ -1,7 +1,7 @@ #include "CDirIterator.h" #include <cerrno> -CDirIterator::CDirIterator(const String& path, Flags flags) +CDirIterator::CDirIterator(const StringView& path, Flags flags) : m_flags(flags) { m_dir = opendir(path.characters()); diff --git a/LibCore/CDirIterator.h b/LibCore/CDirIterator.h index 72920c2c1f..1d3395ef13 100644 --- a/LibCore/CDirIterator.h +++ b/LibCore/CDirIterator.h @@ -11,7 +11,7 @@ public: SkipDots = 0x1, }; - CDirIterator(const String& path, Flags = Flags::NoFlags); + CDirIterator(const StringView& path, Flags = Flags::NoFlags); ~CDirIterator(); bool has_error() const { return m_error != 0; } diff --git a/LibCore/CFile.cpp b/LibCore/CFile.cpp index 44813e1c97..ce686ec416 100644 --- a/LibCore/CFile.cpp +++ b/LibCore/CFile.cpp @@ -3,7 +3,7 @@ #include <stdio.h> #include <unistd.h> -CFile::CFile(const String& filename) +CFile::CFile(const StringView& filename) : m_filename(filename) { } diff --git a/LibCore/CFile.h b/LibCore/CFile.h index fab396ac55..de051b3084 100644 --- a/LibCore/CFile.h +++ b/LibCore/CFile.h @@ -6,11 +6,11 @@ class CFile final : public CIODevice { public: CFile() {} - explicit CFile(const String&); + explicit CFile(const StringView&); virtual ~CFile() override; String filename() const { return m_filename; } - void set_filename(const String& filename) { m_filename = filename; } + void set_filename(const StringView& filename) { m_filename = filename; } virtual bool open(CIODevice::OpenMode) override; |