Commit 2d5413fc authored by Max Kellermann's avatar Max Kellermann

DatabaseSelection: use std::string

parent a6aa0e4c
......@@ -22,7 +22,7 @@
#include "Compiler.h"
#include <assert.h>
#include <string>
class SongFilter;
struct Song;
......@@ -30,10 +30,9 @@ struct Song;
struct DatabaseSelection {
/**
* The base URI of the search (UTF-8). Must not begin or end
* with a slash. nullptr or an empty string searches the whole
* database.
* with a slash. An empty string searches the whole database.
*/
const char *uri;
std::string uri;
/**
* Recursively search all sub directories?
......@@ -45,7 +44,6 @@ struct DatabaseSelection {
DatabaseSelection(const char *_uri, bool _recursive,
const SongFilter *_filter=nullptr)
:uri(_uri), recursive(_recursive), filter(_filter) {
assert(uri != nullptr);
}
gcc_pure
......
......@@ -398,7 +398,7 @@ ProxyDatabase::Visit(const DatabaseSelection &selection,
// TODO: match
// TODO: auto-reconnect
return ::Visit(connection, selection.uri, selection.recursive,
return ::Visit(connection, selection.uri.c_str(), selection.recursive,
visit_directory, visit_song, visit_playlist,
error);
}
......
......@@ -239,10 +239,10 @@ SimpleDatabase::Visit(const DatabaseSelection &selection,
{
ScopeDatabaseLock protect;
const Directory *directory = root->LookupDirectory(selection.uri);
const Directory *directory = root->LookupDirectory(selection.uri.c_str());
if (directory == nullptr) {
if (visit_song) {
Song *song = root->LookupSong(selection.uri);
Song *song = root->LookupSong(selection.uri.c_str());
if (song != nullptr)
return !selection.Match(*song) ||
visit_song(*song, error);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment