db/simple/Song: pass StringView to constructor
This commit is contained in:
parent
97a9adcbec
commit
af3f637d3f
@ -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
|
|||||||
}
|
}
|
||||||
|
|
||||||
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 @@
|
|||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
|
struct StringView;
|
||||||
struct LightSong;
|
struct LightSong;
|
||||||
struct Directory;
|
struct Directory;
|
||||||
class DetachedSong;
|
class DetachedSong;
|
||||||
@ -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;
|
||||||
|
Loading…
Reference in New Issue
Block a user