gobject: Clarify documentation and annotations of g_set_object()

Heavily based on changes suggested by Дилян Палаузов.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>

Fixes: #1849
This commit is contained in:
Philip Withnall 2020-11-14 20:35:09 +00:00
parent e21bdf2219
commit a65fe37e5c

View File

@ -679,16 +679,16 @@ void g_clear_object (GObject **object_ptr);
/** /**
* g_set_object: (skip) * g_set_object: (skip)
* @object_ptr: a pointer to a #GObject reference * @object_ptr: (inout) (not optional) (nullable): a pointer to a #GObject reference
* @new_object: (nullable) (transfer none): a pointer to the new #GObject to * @new_object: (nullable) (transfer none): a pointer to the new #GObject to
* assign to it, or %NULL to clear the pointer * assign to @object_ptr, or %NULL to clear the pointer
* *
* Updates a #GObject pointer to refer to @new_object. It increments the * Updates a #GObject pointer to refer to @new_object. It increments the
* reference count of @new_object (if non-%NULL), decrements the reference * reference count of @new_object (if non-%NULL), decrements the reference
* count of the current value of @object_ptr (if non-%NULL), and assigns * count of the current value of @object_ptr (if non-%NULL), and assigns
* @new_object to @object_ptr. The assignment is not atomic. * @new_object to @object_ptr. The assignment is not atomic.
* *
* @object_ptr must not be %NULL. * @object_ptr must not be %NULL, but can point to a %NULL value.
* *
* A macro is also included that allows this function to be used without * A macro is also included that allows this function to be used without
* pointer casts. The function itself is static inline, so its address may vary * pointer casts. The function itself is static inline, so its address may vary