gdbus-codegen: Fix segfault when remote property is invalidated

The 'key' variable is no longer valid outside the cycle, owned and
probably already freed by GVariant. This causes apps to segfault
when proxy is constructed and a property on remote d-bus service
changes (actually is invalidated). Looks like a typo anyway.

https://bugzilla.gnome.org/show_bug.cgi?id=659070
This commit is contained in:
Tomas Bzatek 2011-09-14 19:02:01 +02:00
parent 219f89057b
commit 9197e288ec

View File

@ -1723,7 +1723,7 @@ class CodeGenerator:
' for (n = 0; invalidated_properties[n] != NULL; n++)\n'
' {\n'
' info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_%s_interface_info, invalidated_properties[n]);\n'
' g_datalist_remove_data (&proxy->priv->qdata, key);\n'
' g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);\n'
' if (info != NULL)\n'
' g_object_notify (G_OBJECT (proxy), info->hyphen_name);\n'
' }\n'