diff --git a/renderdoc/strings/string_utils.cpp b/renderdoc/strings/string_utils.cpp index 14935e5b5..84486ca9e 100644 --- a/renderdoc/strings/string_utils.cpp +++ b/renderdoc/strings/string_utils.cpp @@ -152,6 +152,9 @@ std::wstring get_dirname(const std::wstring &path) void split(const std::string &in, std::vector &out, const char sep) { + if(in.empty()) + return; + { size_t numSeps = 0; @@ -388,6 +391,20 @@ TEST_CASE("String manipulation", "[string]") merge(vec, str, ' '); CHECK(str == "Hello World"); }; + + SECTION("degenerate cases") + { + std::vector vec; + std::string str; + + split(std::string(), vec, ','); + + REQUIRE(vec.empty()); + + merge(vec, str, ','); + + REQUIRE(str == ""); + }; }; #endif // ENABLED(ENABLE_UNIT_TESTS)