util/UriExtract: uri_get_scheme() returns StringView
Reduce overhead by not duplicating the string.
This commit is contained in:
parent
40a2880857
commit
9c6850210d
@ -123,7 +123,7 @@ playlist_list_open_uri_scheme(const char *uri, Mutex &mutex,
|
||||
|
||||
if (playlist_plugins_enabled[i] && plugin->open_uri != nullptr &&
|
||||
plugin->schemes != nullptr &&
|
||||
StringArrayContainsCase(plugin->schemes, scheme.c_str())) {
|
||||
StringArrayContainsCase(plugin->schemes, scheme)) {
|
||||
auto playlist = plugin->open_uri(uri, mutex);
|
||||
if (playlist)
|
||||
return playlist;
|
||||
|
@ -85,14 +85,14 @@ uri_has_scheme(const char *uri) noexcept
|
||||
return strstr(uri, "://") != nullptr;
|
||||
}
|
||||
|
||||
std::string
|
||||
StringView
|
||||
uri_get_scheme(const char *uri) noexcept
|
||||
{
|
||||
const char *end = strstr(uri, "://");
|
||||
if (end == nullptr)
|
||||
end = uri;
|
||||
return nullptr;
|
||||
|
||||
return std::string(uri, end);
|
||||
return {uri, end};
|
||||
}
|
||||
|
||||
const char *
|
||||
|
@ -32,7 +32,7 @@
|
||||
|
||||
#include "Compiler.h"
|
||||
|
||||
#include <string>
|
||||
struct StringView;
|
||||
|
||||
/**
|
||||
* Checks whether the specified URI has a scheme in the form
|
||||
@ -46,7 +46,7 @@ uri_has_scheme(const char *uri) noexcept;
|
||||
* Returns the scheme name of the specified URI, or an empty string.
|
||||
*/
|
||||
gcc_pure
|
||||
std::string
|
||||
StringView
|
||||
uri_get_scheme(const char *uri) noexcept;
|
||||
|
||||
/**
|
||||
|
Loading…
Reference in New Issue
Block a user