Commit f6799615 authored by Max Kellermann's avatar Max Kellermann

Merge tag 'v0.22.6'

release v0.22.6
parents 471c37be 93872882
...@@ -2,6 +2,9 @@ ver 0.23 (not yet released) ...@@ -2,6 +2,9 @@ ver 0.23 (not yet released)
* protocol * protocol
- new command "getvol" - new command "getvol"
ver 0.22.6 (2021/02/16)
* fix missing tags on songs in queue
ver 0.22.5 (2021/02/15) ver 0.22.5 (2021/02/15)
* protocol * protocol
- error for malformed ranges instead of ignoring silently - error for malformed ranges instead of ignoring silently
......
...@@ -2,8 +2,8 @@ ...@@ -2,8 +2,8 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.musicpd" package="org.musicpd"
android:installLocation="auto" android:installLocation="auto"
android:versionCode="53" android:versionCode="54"
android:versionName="0.22.5"> android:versionName="0.22.6">
<uses-sdk android:minSdkVersion="21" android:targetSdkVersion="29"/> <uses-sdk android:minSdkVersion="21" android:targetSdkVersion="29"/>
......
...@@ -38,7 +38,7 @@ author = 'Max Kellermann' ...@@ -38,7 +38,7 @@ author = 'Max Kellermann'
# built documents. # built documents.
# #
# The short X.Y version. # The short X.Y version.
version = '0.22.5' version = '0.22.6'
# The full version, including alpha/beta/rc tags. # The full version, including alpha/beta/rc tags.
release = version release = version
......
...@@ -29,6 +29,12 @@ ...@@ -29,6 +29,12 @@
* a #LightSong, e.g. a merged #Tag. * a #LightSong, e.g. a merged #Tag.
*/ */
class ExportedSong : public LightSong { class ExportedSong : public LightSong {
/**
* A reference target for LightSong::tag, but it is only used
* if this instance "owns" the #Tag. For instances referring
* to a foreign #Tag instance (e.g. a Song::tag), this field
* is not used (and empty).
*/
Tag tag_buffer; Tag tag_buffer;
public: public:
...@@ -42,10 +48,20 @@ public: ...@@ -42,10 +48,20 @@ public:
points to this instance's #Tag field instead of leaving a points to this instance's #Tag field instead of leaving a
dangling reference to the source object's #Tag field */ dangling reference to the source object's #Tag field */
ExportedSong(ExportedSong &&src) noexcept ExportedSong(ExportedSong &&src) noexcept
:LightSong(src, tag_buffer), :LightSong(src,
/* refer to tag_buffer only if the
moved-from instance also owned the Tag
which its LightSong::tag field refers
to */
OwnsTag() ? tag_buffer : src.tag),
tag_buffer(std::move(src.tag_buffer)) {} tag_buffer(std::move(src.tag_buffer)) {}
ExportedSong &operator=(ExportedSong &&) = delete; ExportedSong &operator=(ExportedSong &&) = delete;
private:
bool OwnsTag() const noexcept {
return &tag == &tag_buffer;
}
}; };
#endif #endif
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