diff -Nru dbus-cpp-5.0.0+15.10.20151021.1/debian/changelog dbus-cpp-5.0.0+15.10.20151022.1/debian/changelog --- dbus-cpp-5.0.0+15.10.20151021.1/debian/changelog 2015-10-22 14:10:16.000000000 +0000 +++ dbus-cpp-5.0.0+15.10.20151022.1/debian/changelog 2015-10-22 14:10:16.000000000 +0000 @@ -1,3 +1,9 @@ +dbus-cpp (5.0.0+15.10.20151022.1-0ubuntu1) wily; urgency=medium + + * Fix signal emission on dbus::ServiceWatcher. + + -- Thomas Voß Thu, 22 Oct 2015 07:17:01 +0000 + dbus-cpp (5.0.0+15.10.20151021.1-0ubuntu1) wily; urgency=medium [ CI Train Bot ] diff -Nru dbus-cpp-5.0.0+15.10.20151021.1/src/core/dbus/message.cpp dbus-cpp-5.0.0+15.10.20151022.1/src/core/dbus/message.cpp --- dbus-cpp-5.0.0+15.10.20151021.1/src/core/dbus/message.cpp 2015-10-21 08:00:42.000000000 +0000 +++ dbus-cpp-5.0.0+15.10.20151022.1/src/core/dbus/message.cpp 2015-10-22 07:16:58.000000000 +0000 @@ -298,7 +298,7 @@ void Message::Writer::push_boolean(bool value) { - dbus_bool_t bool_value = value ? TRUE : FALSE; + auto bool_value = value ? TRUE : FALSE; if (!dbus_message_iter_append_basic( std::addressof(d->iter), diff -Nru dbus-cpp-5.0.0+15.10.20151021.1/src/core/dbus/service_watcher.cpp dbus-cpp-5.0.0+15.10.20151022.1/src/core/dbus/service_watcher.cpp --- dbus-cpp-5.0.0+15.10.20151021.1/src/core/dbus/service_watcher.cpp 2015-10-21 08:00:42.000000000 +0000 +++ dbus-cpp-5.0.0+15.10.20151022.1/src/core/dbus/service_watcher.cpp 2015-10-22 07:16:58.000000000 +0000 @@ -48,16 +48,18 @@ const std::string& old_owner(std::get<1>(args)); const std::string& new_owner(std::get<2>(args)); - owner_changed(old_owner, new_owner); - if (new_owner.empty()) + if (old_owner.empty() && !new_owner.empty()) { - service_unregistered(); + service_registered(); } - else + + if (!old_owner.empty() && new_owner.empty()) { - service_registered(); + service_unregistered(); } + + owner_changed(old_owner, new_owner); } core::Signal owner_changed;