From f1566bda1403d9c2f3a35d3a07c0c9c168c3b2f3 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Fri, 31 Jan 2020 13:10:04 +0100 Subject: [PATCH] util: pass std::string_view to tokenize_string() This saves some overhead because some callers pass a plain C string here which needed to be copied to a temporary std::string. --- src/util.cc | 2 +- src/util.h | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/util.cc b/src/util.cc index b820aabb3a..544b547b29 100644 --- a/src/util.cc +++ b/src/util.cc @@ -1501,7 +1501,7 @@ TEST_CASE("util tokenize_string") CHECK(v2.size() == 1); } -vector* tokenize_string(const string &input, const string& delim, +vector* tokenize_string(const std::string_view input, const std::string_view delim, vector* rval, int limit) { if ( ! rval ) diff --git a/src/util.h b/src/util.h index 40c45b274e..9442357e0b 100644 --- a/src/util.h +++ b/src/util.h @@ -25,6 +25,7 @@ #include #include +#include #include #include #include @@ -145,8 +146,8 @@ inline std::string get_escaped_string(const std::string& str, bool escape_all) return get_escaped_string(str.data(), str.length(), escape_all); } -std::vector* tokenize_string(const std::string &input, - const std::string& delim, +std::vector* tokenize_string(std::string_view input, + std::string_view delim, std::vector* rval = 0, int limit = 0); extern char* copy_string(const char* s);