diff options
-rw-r--r-- | .be/8443e173-30ee-4e83-9228-9e11414e3432/bugs/529e18a6-babb-4ec9-bc2e-2ab54b14dc63/values | 2 | ||||
-rw-r--r-- | clang-plugin/gsignal-checker.cpp | 11 | ||||
-rw-r--r-- | tests/gsignal-connect.c | 13 | ||||
-rw-r--r-- | tests/gsignal.head.c | 9 |
4 files changed, 25 insertions, 10 deletions
diff --git a/.be/8443e173-30ee-4e83-9228-9e11414e3432/bugs/529e18a6-babb-4ec9-bc2e-2ab54b14dc63/values b/.be/8443e173-30ee-4e83-9228-9e11414e3432/bugs/529e18a6-babb-4ec9-bc2e-2ab54b14dc63/values index 95c02e9..aa19b1c 100644 --- a/.be/8443e173-30ee-4e83-9228-9e11414e3432/bugs/529e18a6-babb-4ec9-bc2e-2ab54b14dc63/values +++ b/.be/8443e173-30ee-4e83-9228-9e11414e3432/bugs/529e18a6-babb-4ec9-bc2e-2ab54b14dc63/values @@ -26,7 +26,7 @@ - "status": "open", + "status": "fixed", diff --git a/clang-plugin/gsignal-checker.cpp b/clang-plugin/gsignal-checker.cpp index 7f4f8a1..3197cb0 100644 --- a/clang-plugin/gsignal-checker.cpp +++ b/clang-plugin/gsignal-checker.cpp @@ -409,15 +409,8 @@ _type_info_to_type (GITypeInfo *type_info, return type_manager.find_pointer_type_by_name ("GSList"); case GI_TYPE_TAG_GHASH: return type_manager.find_pointer_type_by_name ("GHashTable"); - case GI_TYPE_TAG_ERROR: { - QualType qt = type_manager.find_pointer_type_by_name ("GError"); - - if (!qt.isNull ()) { - return context.getPointerType (qt); - } - - return QualType (); - } + case GI_TYPE_TAG_ERROR: + return type_manager.find_pointer_type_by_name ("GError"); default: llvm::errs () << "Warning: Unexpected base info type " << g_base_info_get_type (type_info) << diff --git a/tests/gsignal-connect.c b/tests/gsignal-connect.c index 06e3782..5583740 100644 --- a/tests/gsignal-connect.c +++ b/tests/gsignal-connect.c @@ -344,3 +344,16 @@ g_signal_connect (proxy, "interface-added", (GCallback) dbus_object_interface_added_cb, NULL); } + +/* + * No error + */ +{ + // GDBusConnection::closed has a GError* as one of its parameters, + // which we want to check to avoid bug 844/529. + GDBusConnection *conn = g_malloc (5); // only checking the type + GObject *self = g_malloc (5); // only checking the type + g_signal_connect_object (conn, "closed", + G_CALLBACK (dbus_connection_closed_cb), + self, 0); +} diff --git a/tests/gsignal.head.c b/tests/gsignal.head.c index c6b70ef..266b1d1 100644 --- a/tests/gsignal.head.c +++ b/tests/gsignal.head.c @@ -134,6 +134,15 @@ dbus_object_proxy_interface_added_cb (GDBusObjectProxy *obj, /* Done */ } +static void +dbus_connection_closed_cb (GDBusConnection *conn, + gboolean remote_peer_vanished, + GError *error, + gpointer user_data) +{ + /* Done */ +} + int main (void) { |