Kaydet (Commit) 21f98618 authored tarafından Stephan Bergmann's avatar Stephan Bergmann

-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
üst 9bff8716
......@@ -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;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment