--- lo/lo_cpp.h.orig 2014-01-27 21:30:49.000000000 +0400 +++ lo/lo_cpp.h 2014-06-21 22:48:04.546899637 +0400 @@ -426,19 +426,22 @@ } } - Server(const num_string_type &port, lo_err_handler err_h=0) - : Server(lo_server_new(port, err_h)) {} + Server(const num_string_type &port, lo_err_handler err_h=0) { + server = lo_server_new(port, err_h); + } - Server(const num_string_type &port, int proto, lo_err_handler err_h=0) - : Server(lo_server_new_with_proto(port, proto, err_h)) {} + Server(const num_string_type &port, int proto, lo_err_handler err_h=0) { + server = lo_server_new_with_proto(port, proto, err_h); + } Server(const string_type &group, const num_string_type &port, - const string_type &iface="", const string_type &ip="", lo_err_handler err_h=0) - : Server((iface._s || ip._s) - ? lo_server_new_multicast_iface(group, port, - iface._s?:0, - ip._s?:0, err_h) - : lo_server_new_multicast(group, port, err_h)) {} + const string_type &iface="", const string_type &ip="", lo_err_handler err_h=0) { + if (iface._s || ip._s) { + server = lo_server_new_multicast_iface(group, port, iface._s?:0, ip._s?:0, err_h); + } else { + server = lo_server_new_multicast(group, port, err_h); + } + } virtual ~Server() { if (server) lo_server_free(server); } @@ -734,8 +737,12 @@ } } - Bundle(const Bundle &b) - : Bundle((lo_bundle)b) {} + Bundle(const Bundle &b) { + lo_bundle newb = (lo_bundle)b; + bundle = newb; + if (newb) + lo_bundle_incref(newb); + } ~Bundle() { if (bundle) lo_bundle_free_recursive(bundle); } .