diff options
-rw-r--r-- | Makefile.am | 6 | ||||
-rw-r--r-- | NEWS | 13 | ||||
-rw-r--r-- | src/fs/io/FileOutputStream.cxx | 2 | ||||
-rw-r--r-- | src/tag/TagBuilder.cxx | 11 |
4 files changed, 23 insertions, 9 deletions
diff --git a/Makefile.am b/Makefile.am index 1743c48f4..1f263e6d5 100644 --- a/Makefile.am +++ b/Makefile.am @@ -29,8 +29,6 @@ noinst_LIBRARIES = \ libmixer_plugins.a \ liboutput_plugins.a -libmpd_a_DEPENDENCIES = - libmpd_a_CPPFLAGS = $(AM_CPPFLAGS) \ $(LIBMPDCLIENT_CFLAGS) \ $(AVAHI_CFLAGS) \ @@ -289,13 +287,13 @@ android/build/build.xml: android/AndroidManifest.xml ln -s $(abs_srcdir)/android/res/values $(abs_srcdir)/android/res/layout android/build/res $(ANDROID_SDK)/tools/android update project --path android/build --target android-17 --name $(APK_NAME) -android/build/bin/classes/org/musicpd/Bridge.class: android/src/Bridge.java android/build/build.xml +android/build/bin/classes/org/musicpd/Bridge.class: android/src/Bridge.java android/build/build.xml android/build/res/drawable/icon.png cd android/build && ant compile-jni-classes android/build/include/org_musicpd_Bridge.h: android/build/bin/classes/org/musicpd/Bridge.class javah -classpath $(ANDROID_SDK)/platforms/android-17/android.jar:android/build/bin/classes -d $(@D) org.musicpd.Bridge -libmpd_a_DEPENDENCIES += android/build/include/org_musicpd_Bridge.h +BUILT_SOURCES = android/build/include/org_musicpd_Bridge.h android/build/libs/armeabi-v7a/libmpd.so: libmpd.so android/build/build.xml mkdir -p $(@D) @@ -28,12 +28,17 @@ ver 0.20 (not yet released) * database - proxy: add TCP keepalive option -ver 0.19.9 (not yet released) +ver 0.19.9 (2015/02/06) * decoder - dsdiff, dsf: raise ID3 tag limit to 1 MB +* playlist: fix loading duplicate tag types from state file +* despotify: remove defunct plugin * fix clock integer overflow on OS X +* fix gcc 5.0 warnings * fix build failure with uClibc * fix build failure on non-POSIX operating systems +* fix dependency issue on parallel Android build +* fix database/state file saving on Windows ver 0.19.8 (2015/01/14) * input @@ -208,12 +213,12 @@ ver 0.19 (2014/10/10) * install systemd unit for socket activation * Android port -ver 0.18.23 (not yet released) +ver 0.18.23 (2015/02/06) * despotify: remove defunct plugin +* fix clock integer overflow on OS X * fix gcc 5.0 warnings - -ver 0.18.22 (2014/01/14) +ver 0.18.22 (2015/01/14) * fix clang 3.6 warnings ver 0.18.21 (2014/12/17) diff --git a/src/fs/io/FileOutputStream.cxx b/src/fs/io/FileOutputStream.cxx index 11b5b2351..40dadf310 100644 --- a/src/fs/io/FileOutputStream.cxx +++ b/src/fs/io/FileOutputStream.cxx @@ -73,6 +73,7 @@ FileOutputStream::Commit(gcc_unused Error &error) assert(IsDefined()); CloseHandle(handle); + handle = INVALID_HANDLE_VALUE; return true; } @@ -82,6 +83,7 @@ FileOutputStream::Cancel() assert(IsDefined()); CloseHandle(handle); + handle = INVALID_HANDLE_VALUE; RemoveFile(path); } diff --git a/src/tag/TagBuilder.cxx b/src/tag/TagBuilder.cxx index 46024b44c..42e11e798 100644 --- a/src/tag/TagBuilder.cxx +++ b/src/tag/TagBuilder.cxx @@ -25,6 +25,8 @@ #include "Tag.hxx" #include "util/WritableBuffer.hxx" +#include <array> + #include <assert.h> #include <string.h> #include <stdlib.h> @@ -168,12 +170,19 @@ TagBuilder::Complement(const Tag &other) has_playlist |= other.has_playlist; + /* build a table of tag types that were already present in + this object, which will not be copied from #other */ + std::array<bool, TAG_NUM_OF_ITEM_TYPES> present; + present.fill(false); + for (const TagItem *i : items) + present[i->type] = true; + items.reserve(items.size() + other.num_items); tag_pool_lock.lock(); for (unsigned i = 0, n = other.num_items; i != n; ++i) { TagItem *item = other.items[i]; - if (!HasType(item->type)) + if (!present[item->type]) items.push_back(tag_pool_dup_item(item)); } tag_pool_lock.unlock(); |