summaryrefslogtreecommitdiff
path: root/shell
diff options
context:
space:
mode:
authorStephan Bergmann <sbergman@redhat.com>2016-01-19 10:37:55 +0100
committerMiklos Vajna <vmiklos@collabora.co.uk>2016-01-21 08:18:09 +0000
commit5e30320ff97ae8304e91b6f7e978de42b50afc8c (patch)
tree37fca3b302a9898e080d4f0d0eab94d8035259fb /shell
parent436a003bcfc98aeb2bc8f1d6b0f552cc67e908f0 (diff)
-Werror=terminate (GCC 6)
...when throwing an exception from implicitly noexcept ~GErrorWrapper. So make ~GErrorWrapper noexcept(false) and see that no code executed while a GErrorWrapper instance is active on the stack would throw an exception. But the design of GErrorWrapper, to throw an exception from a dtor, is very brittle and should be fixed. Change-Id: Ib04ff2b0497c160dc7ee44c3354fa9619285ec88 (cherry picked from commit 21f98618d8cd7562d423e94db988126d662165c9) Reviewed-on: https://gerrit.libreoffice.org/21634 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Diffstat (limited to 'shell')
-rw-r--r--shell/source/sessioninstall/SyncDbusSessionHelper.cxx8
1 files changed, 5 insertions, 3 deletions
diff --git a/shell/source/sessioninstall/SyncDbusSessionHelper.cxx b/shell/source/sessioninstall/SyncDbusSessionHelper.cxx
index d0c1b30a47ed..eca1a4bbb9e5 100644
--- a/shell/source/sessioninstall/SyncDbusSessionHelper.cxx
+++ b/shell/source/sessioninstall/SyncDbusSessionHelper.cxx
@@ -26,7 +26,7 @@ namespace
GError* m_pError;
public:
explicit GErrorWrapper(GError* pError) : m_pError(pError) {}
- ~GErrorWrapper()
+ ~GErrorWrapper() noexcept(false)
{
if(!m_pError)
return;
@@ -39,15 +39,17 @@ namespace
static inline GDBusProxy* lcl_GetPackageKitProxy(const OUString& sInterface)
{
const OString sFullInterface = OUStringToOString("org.freedesktop.PackageKit." + sInterface, RTL_TEXTENCODING_ASCII_US);
- GErrorWrapper error(nullptr);
GDBusProxy* proxy = nullptr;
- proxy = g_dbus_proxy_new_for_bus_sync (G_BUS_TYPE_SESSION,
+ {
+ GErrorWrapper error(nullptr);
+ proxy = g_dbus_proxy_new_for_bus_sync (G_BUS_TYPE_SESSION,
G_DBUS_PROXY_FLAGS_NONE, nullptr,
"org.freedesktop.PackageKit",
"/org/freedesktop/PackageKit",
reinterpret_cast<const gchar*>(sFullInterface.getStr()),
nullptr,
&error.getRef());
+ }
if(!proxy)
throw RuntimeException("couldnt get a proxy!");
return proxy;