diff options
-rw-r--r-- | Makefile.am | 2 | ||||
-rw-r--r-- | src/db/upnp/ContentDirectoryService.cxx | 5 | ||||
-rw-r--r-- | src/db/upnp/ContentDirectoryService.hxx | 2 | ||||
-rw-r--r-- | src/db/upnp/Device.cxx | 5 | ||||
-rw-r--r-- | src/db/upnp/Device.hxx | 2 | ||||
-rw-r--r-- | src/db/upnp/Directory.cxx | 5 | ||||
-rw-r--r-- | src/db/upnp/Directory.hxx | 2 | ||||
-rw-r--r-- | src/db/upnp/Object.cxx | 25 | ||||
-rw-r--r-- | src/db/upnp/Object.hxx | 3 |
9 files changed, 50 insertions, 1 deletions
diff --git a/Makefile.am b/Makefile.am index 80ae9bdd8..eaed7cb0a 100644 --- a/Makefile.am +++ b/Makefile.am @@ -429,7 +429,7 @@ libdb_plugins_a_SOURCES += \ src/db/upnp/Util.cxx src/db/upnp/Util.hxx \ src/db/upnp/Action.hxx \ src/db/upnp/WorkQueue.hxx \ - src/db/upnp/Object.hxx + src/db/upnp/Object.cxx src/db/upnp/Object.hxx DB_LIBS += \ $(EXPAT_LIBS) \ $(UPNP_LIBS) diff --git a/src/db/upnp/ContentDirectoryService.cxx b/src/db/upnp/ContentDirectoryService.cxx index 1c4e43e12..35445e09d 100644 --- a/src/db/upnp/ContentDirectoryService.cxx +++ b/src/db/upnp/ContentDirectoryService.cxx @@ -48,6 +48,11 @@ ContentDirectoryService::ContentDirectoryService(const UPnPDevice &device, } } +ContentDirectoryService::~ContentDirectoryService() +{ + /* this destructor exists here just so it won't get inlined */ +} + static bool ReadResultTag(UPnPDirContent &dirbuf, IXML_Document *response, Error &error) { diff --git a/src/db/upnp/ContentDirectoryService.hxx b/src/db/upnp/ContentDirectoryService.hxx index 18bdcde22..24be5dfbf 100644 --- a/src/db/upnp/ContentDirectoryService.hxx +++ b/src/db/upnp/ContentDirectoryService.hxx @@ -68,6 +68,8 @@ public: /** An empty one */ ContentDirectoryService() = default; + ~ContentDirectoryService(); + /** Read a container's children list into dirbuf. * * @param objectId the UPnP object Id for the container. Root has Id "0" diff --git a/src/db/upnp/Device.cxx b/src/db/upnp/Device.cxx index 2dab1b4c5..7bec1cccd 100644 --- a/src/db/upnp/Device.cxx +++ b/src/db/upnp/Device.cxx @@ -27,6 +27,11 @@ #include <string.h> +UPnPDevice::~UPnPDevice() +{ + /* this destructor exists here just so it won't get inlined */ +} + /** * An XML parser which constructs an UPnP device object from the * device descriptor. diff --git a/src/db/upnp/Device.hxx b/src/db/upnp/Device.hxx index 49bcd2896..dd7ecac2d 100644 --- a/src/db/upnp/Device.hxx +++ b/src/db/upnp/Device.hxx @@ -75,6 +75,8 @@ public: UPnPDevice(UPnPDevice &&) = default; UPnPDevice &operator=(UPnPDevice &&) = default; + ~UPnPDevice(); + /** Build device from xml description downloaded from discovery * @param url where the description came from * @param description the xml device description diff --git a/src/db/upnp/Directory.cxx b/src/db/upnp/Directory.cxx index 9f4418a70..adb8b213a 100644 --- a/src/db/upnp/Directory.cxx +++ b/src/db/upnp/Directory.cxx @@ -31,6 +31,11 @@ #include <string.h> +UPnPDirContent::~UPnPDirContent() +{ + /* this destructor exists here just so it won't get inlined */ +} + gcc_pure gcc_nonnull_all static bool CompareStringLiteral(const char *literal, const char *value, size_t length) diff --git a/src/db/upnp/Directory.hxx b/src/db/upnp/Directory.hxx index 8858c9325..433979900 100644 --- a/src/db/upnp/Directory.hxx +++ b/src/db/upnp/Directory.hxx @@ -36,6 +36,8 @@ class UPnPDirContent { public: std::vector<UPnPDirObject> objects; + ~UPnPDirContent(); + gcc_pure UPnPDirObject *FindObject(const char *name) { for (auto &o : objects) diff --git a/src/db/upnp/Object.cxx b/src/db/upnp/Object.cxx new file mode 100644 index 000000000..703fb0be4 --- /dev/null +++ b/src/db/upnp/Object.cxx @@ -0,0 +1,25 @@ +/* + * Copyright (C) 2003-2014 The Music Player Daemon Project + * http://www.musicpd.org + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#include "Object.hxx" + +UPnPDirObject::~UPnPDirObject() +{ + /* this destructor exists here just so it won't get inlined */ +} diff --git a/src/db/upnp/Object.hxx b/src/db/upnp/Object.hxx index 65a6b323f..16a66c774 100644 --- a/src/db/upnp/Object.hxx +++ b/src/db/upnp/Object.hxx @@ -66,6 +66,9 @@ public: UPnPDirObject() = default; UPnPDirObject(UPnPDirObject &&) = default; + + ~UPnPDirObject(); + UPnPDirObject &operator=(UPnPDirObject &&) = default; void clear() |