docs: Document that signal connection functions cannot fail
The documentation previously implied that they could. That’s not really
true though: they can only fail if preconditions fail, i.e. they’re
passed invalid input. That’s a programmer error, which is not something
we want to encourage people to check for at runtime (e.g. by dynamically
checking for a 0 return value).
Signed-off-by: Philip Withnall <pwithnall@gnome.org>
diff --git a/gobject/gsignal.c b/gobject/gsignal.c
index 755a515..a5b471c 100644
--- a/gobject/gsignal.c
+++ b/gobject/gsignal.c
@@ -2301,7 +2301,10 @@
* If @closure is a floating reference (see g_closure_sink()), this function
* takes ownership of @closure.
*
- * Returns: the handler ID (always greater than 0 for successful connections)
+ * This function cannot fail. If the given signal doesn’t exist, a critical
+ * warning is emitted.
+ *
+ * Returns: the handler ID (always greater than 0)
*/
gulong
g_signal_connect_closure_by_id (gpointer instance,
@@ -2366,7 +2369,10 @@
* If @closure is a floating reference (see g_closure_sink()), this function
* takes ownership of @closure.
*
- * Returns: the handler ID (always greater than 0 for successful connections)
+ * This function cannot fail. If the given signal doesn’t exist, a critical
+ * warning is emitted.
+ *
+ * Returns: the handler ID (always greater than 0)
*/
gulong
g_signal_connect_closure (gpointer instance,
@@ -2462,7 +2468,10 @@
* used. Specify @connect_flags if you need `..._after()` or
* `..._swapped()` variants of this function.
*
- * Returns: the handler ID (always greater than 0 for successful connections)
+ * This function cannot fail. If the given signal doesn’t exist, a critical
+ * warning is emitted.
+ *
+ * Returns: the handler ID (always greater than 0)
*/
gulong
g_signal_connect_data (gpointer instance,
diff --git a/gobject/gsignal.h b/gobject/gsignal.h
index 5bcbb0d..52d08a8 100644
--- a/gobject/gsignal.h
+++ b/gobject/gsignal.h
@@ -508,7 +508,10 @@
* See [memory management of signal handlers](signals.html#Memory_management_of_signal_handlers) for
* details on how to handle the return value and memory management of @data.
*
- * Returns: the handler ID, of type #gulong (always greater than 0 for successful connections)
+ * This function cannot fail. If the given signal doesn’t exist, a critical
+ * warning is emitted.
+ *
+ * Returns: the handler ID, of type `gulong` (always greater than 0)
*/
/* Intentionally not using G_CONNECT_DEFAULT here to avoid deprecation
* warnings with older GLIB_VERSION_MAX_ALLOWED */
@@ -525,7 +528,10 @@
*
* The handler will be called synchronously, after the default handler of the signal.
*
- * Returns: the handler ID, of type #gulong (always greater than 0 for successful connections)
+ * This function cannot fail. If the given signal doesn’t exist, a critical
+ * warning is emitted.
+ *
+ * Returns: the handler ID, of type `gulong` (always greater than 0)
*/
#define g_signal_connect_after(instance, detailed_signal, c_handler, data) \
g_signal_connect_data ((instance), (detailed_signal), (c_handler), (data), NULL, G_CONNECT_AFTER)
@@ -563,7 +569,10 @@
* (GCallback) button_clicked_cb, other_widget);
* ]|
*
- * Returns: the handler ID, of type #gulong (always greater than 0 for successful connections)
+ * This function cannot fail. If the given signal doesn’t exist, a critical
+ * warning is emitted.
+ *
+ * Returns: the handler ID, of type `gulong` (always greater than 0)
*/
#define g_signal_connect_swapped(instance, detailed_signal, c_handler, data) \
g_signal_connect_data ((instance), (detailed_signal), (c_handler), (data), NULL, G_CONNECT_SWAPPED)