Commit af3f637d authored by Max Kellermann's avatar Max Kellermann

db/simple/Song: pass StringView to constructor

parent 97a9adcb
...@@ -24,15 +24,16 @@ ...@@ -24,15 +24,16 @@
#include "util/VarSize.hxx" #include "util/VarSize.hxx"
#include "song/DetachedSong.hxx" #include "song/DetachedSong.hxx"
#include "song/LightSong.hxx" #include "song/LightSong.hxx"
#include "util/StringView.hxx"
#include <assert.h> #include <assert.h>
#include <string.h> #include <string.h>
inline inline
Song::Song(const char *_uri, size_t uri_length, Directory &_parent) noexcept Song::Song(StringView _uri, Directory &_parent) noexcept
:parent(&_parent) :parent(&_parent)
{ {
memcpy(uri, _uri, uri_length + 1); memcpy(uri, _uri.data, _uri.size + 1);
} }
inline inline
...@@ -41,17 +42,11 @@ Song::~Song() noexcept ...@@ -41,17 +42,11 @@ Song::~Song() noexcept
} }
static SongPtr static SongPtr
song_alloc(const char *uri, Directory &parent) noexcept song_alloc(StringView uri, Directory &parent) noexcept
{ {
size_t uri_length;
assert(uri);
uri_length = strlen(uri);
assert(uri_length);
auto *song = NewVarSize<Song>(sizeof(Song::uri), auto *song = NewVarSize<Song>(sizeof(Song::uri),
uri_length + 1, uri.size + 1,
uri, uri_length, parent); uri, parent);
return SongPtr(song); return SongPtr(song);
} }
......
...@@ -31,6 +31,7 @@ ...@@ -31,6 +31,7 @@
#include <string> #include <string>
struct StringView;
struct LightSong; struct LightSong;
struct Directory; struct Directory;
class DetachedSong; class DetachedSong;
...@@ -93,7 +94,7 @@ struct Song { ...@@ -93,7 +94,7 @@ struct Song {
*/ */
char uri[sizeof(int)]; char uri[sizeof(int)];
Song(const char *_uri, size_t uri_length, Directory &parent) noexcept; Song(StringView _uri, Directory &parent) noexcept;
~Song() noexcept; ~Song() noexcept;
static SongPtr NewFrom(DetachedSong &&other, Directory &parent) noexcept; static SongPtr NewFrom(DetachedSong &&other, Directory &parent) noexcept;
......
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