summaryrefslogtreecommitdiff
path: root/gir/glib-2.0.c
diff options
context:
space:
mode:
Diffstat (limited to 'gir/glib-2.0.c')
-rw-r--r--gir/glib-2.0.c131
1 files changed, 101 insertions, 30 deletions
diff --git a/gir/glib-2.0.c b/gir/glib-2.0.c
index ef4d007b..55807157 100644
--- a/gir/glib-2.0.c
+++ b/gir/glib-2.0.c
@@ -2491,6 +2491,9 @@
*
* On UNIX, processes are identified by a process id (an integer),
* while Windows uses process handles (which are pointers).
+ *
+ * GPid is used in GLib only for descendant processes spawned with
+ * the g_spawn functions.
*/
@@ -11492,6 +11495,9 @@
* }
* </programlisting>
* </example>
+ *
+ * As of version 2.32, there is also a g_hash_table_add() function to
+ * add a key to a #GHashTable that is being used as a set.
*/
@@ -14267,8 +14273,7 @@
* calling g_atexit() (or atexit()) except in the main executable of a
* program.
*
- * Deprecated:2.32: It is best to avoid g_atexit(), for the reasons
- * outlined above.
+ * Deprecated:2.32: It is best to avoid g_atexit().
*/
@@ -16352,9 +16357,6 @@
* If no threads are waiting for @cond, this function has no effect.
* It is good practice to lock the same mutex as the waiting threads
* while calling this function, though not required.
- *
- * This function can be used even if g_thread_init() has not yet been
- * called, and, in that case, will do nothing.
*/
@@ -16402,9 +16404,6 @@
* If no threads are waiting for @cond, this function has no effect.
* It is good practice to hold the same lock as the waiting thread
* while calling this function, though not required.
- *
- * This function can be used even if g_thread_init() has not yet been
- * called, and, in that case, will do nothing.
*/
@@ -19988,6 +19987,34 @@
/**
+ * g_hash_table_add:
+ * @hash_table: a #GHashTable
+ * @key: a key to insert
+ *
+ * This is a convenience function for using a #GHashTable as a set. It
+ * is equivalent to calling g_hash_table_replace() with @key as both the
+ * key and the value.
+ *
+ * When a hash table only ever contains keys that have themselves as the
+ * corresponding value it is able to be stored more efficiently. See
+ * the discussion in the section description.
+ *
+ * Since: 2.32
+ */
+
+
+/**
+ * g_hash_table_contains:
+ * @hash_table: a #GHashTable
+ * @key: a key to check
+ *
+ * Checks if @key is in @hash_table.
+ *
+ * Since: 2.32
+ */
+
+
+/**
* g_hash_table_destroy:
* @hash_table: a #GHashTable
*
@@ -24998,7 +25025,7 @@
* returned and %errno will be set.
*
* Returns: A pointer to @tmpl, which has been modified
- * Since: 2.26
+ * Since: 2.30
*/
@@ -25023,7 +25050,7 @@
* returned, and %errno will be set.
*
* Returns: A pointer to @tmpl, which has been modified
- * Since: 2.26
+ * Since: 2.30
*/
@@ -25135,9 +25162,6 @@
* current thread will block until @mutex is unlocked by the other
* thread.
*
- * This function can be used even if g_thread_init() has not yet been
- * called, and, in that case, will do nothing.
- *
* <note>#GMutex is neither guaranteed to be recursive nor to be
* non-recursive. As such, calling g_mutex_lock() on a #GMutex that has
* already been locked by the same thread results in undefined behaviour
@@ -25153,9 +25177,6 @@
* it immediately returns %FALSE. Otherwise it locks @mutex and returns
* %TRUE.
*
- * This function can be used even if g_thread_init() has not yet been
- * called, and, in that case, will immediately return %TRUE.
- *
* <note>#GMutex is neither guaranteed to be recursive nor to be
* non-recursive. As such, calling g_mutex_lock() on a #GMutex that has
* already been locked by the same thread results in undefined behaviour
@@ -25175,9 +25196,6 @@
*
* Calling g_mutex_unlock() on a mutex that is not locked by the
* current thread leads to undefined behaviour.
- *
- * This function can be used even if g_thread_init() has not yet been
- * called, and, in that case, will do nothing.
*/
@@ -25703,11 +25721,13 @@
/**
* g_on_error_stack_trace:
- * @prg_name: the program name, needed by <command>gdb</command> for the [S]tack trace option. If @prg_name is %NULL, g_get_prgname() is called to get the program name (which will work correctly if gdk_init() or gtk_init() has been called)
+ * @prg_name: the program name, needed by <command>gdb</command> for the [S]tack trace option.
*
* Invokes <command>gdb</command>, which attaches to the current
* process and shows a stack trace. Called by g_on_error_query()
- * when the [S]tack trace option is selected.
+ * when the [S]tack trace option is selected. You can get the current
+ * process's "program name" with g_get_prgname(), assuming that you
+ * have called gtk_init() or gdk_init().
*
* This function may cause different actions on non-UNIX platforms.
*/
@@ -31523,7 +31543,7 @@
* @source: a string to escape
* @exceptions: a string of characters not to escape in @source
*
- * Escapes the special characters '\b', '\f', '\n', '\r', '\t', '\'
+ * Escapes the special characters '\b', '\f', '\n', '\r', '\t', '\v', '\'
* and '&quot;' in the string @source by inserting a '\' before
* them. Additionally all characters in the range 0x01-0x1F (everything
* below SPACE) and in the range 0x7F-0xFF (all non-ASCII chars) are
@@ -32678,7 +32698,7 @@
* </para></listitem>
* </varlistentry>
* <varlistentry>
- * <term><option>-m {perf|slow|thorough|quick}</option></term>
+ * <term><option>-m {perf|slow|thorough|quick|undefined|no-undefined}</option></term>
* <listitem><para>
* execute tests according to these test modes:
* <variablelist>
@@ -32701,6 +32721,20 @@
* quick tests, should run really quickly and give good coverage.
* </para></listitem>
* </varlistentry>
+ * <varlistentry>
+ * <term>undefined</term>
+ * <listitem><para>
+ * tests for undefined behaviour, may provoke programming errors
+ * under g_test_trap_fork() to check that appropriate assertions
+ * or warnings are given
+ * </para></listitem>
+ * </varlistentry>
+ * <varlistentry>
+ * <term>no-undefined</term>
+ * <listitem><para>
+ * avoid tests for undefined behaviour
+ * </para></listitem>
+ * </varlistentry>
* </variablelist>
* </para></listitem>
* </varlistentry>
@@ -32882,6 +32916,8 @@
* g_test_quick:
*
* Returns %TRUE if tests are run in quick mode.
+ * Exactly one of g_test_quick() and g_test_slow() is active in any run;
+ * there is no "medium speed".
*
* Returns: %TRUE if in quick mode
*/
@@ -32891,8 +32927,9 @@
* g_test_quiet:
*
* Returns %TRUE if tests are run in quiet mode.
+ * The default is neither g_test_verbose() nor g_test_quiet().
*
- * Returns: %TRUE if in quied mode
+ * Returns: %TRUE if in quiet mode
*/
@@ -32997,8 +33034,10 @@
* g_test_slow:
*
* Returns %TRUE if tests are run in slow mode.
+ * Exactly one of g_test_quick() and g_test_slow() is active in any run;
+ * there is no "medium speed".
*
- * Returns: %TRUE if in slow mode
+ * Returns: the opposite of g_test_quick()
*/
@@ -33027,9 +33066,10 @@
/**
* g_test_thorough:
*
- * Returns %TRUE if tests are run in thorough mode.
+ * Returns %TRUE if tests are run in thorough mode, equivalent to
+ * g_test_slow().
*
- * Returns: %TRUE if in thorough mode
+ * Returns: the same thing as g_test_slow()
*/
@@ -33069,6 +33109,12 @@
* Assert that the last forked test failed.
* See g_test_trap_fork().
*
+ * This is sometimes used to test situations that are formally considered to
+ * be undefined behaviour, like inputs that fail a g_return_if_fail()
+ * check. In these situations you should skip the entire test, including the
+ * call to g_test_trap_fork(), unless g_test_undefined() returns %TRUE
+ * to indicate that undefined behaviour may be tested.
+ *
* Since: 2.16
*/
@@ -33090,6 +33136,12 @@
* Assert that the stderr output of the last forked test
* matches @serrpattern. See g_test_trap_fork().
*
+ * This is sometimes used to test situations that are formally considered to
+ * be undefined behaviour, like inputs that fail a g_return_if_fail()
+ * check. In these situations you should skip the entire test, including the
+ * call to g_test_trap_fork(), unless g_test_undefined() returns %TRUE
+ * to indicate that undefined behaviour may be tested.
+ *
* Since: 2.16
*/
@@ -33187,9 +33239,22 @@
/**
+ * g_test_undefined:
+ *
+ * Returns %TRUE if tests may provoke assertions and other formally-undefined
+ * behaviour under g_test_trap_fork(), to verify that appropriate warnings
+ * are given. It can be useful to turn this off if running tests under
+ * valgrind.
+ *
+ * Returns: %TRUE if tests may provoke programming errors
+ */
+
+
+/**
* g_test_verbose:
*
* Returns %TRUE if tests are run in verbose mode.
+ * The default is neither g_test_verbose() nor g_test_quiet().
*
* Returns: %TRUE if in verbose mode
*/
@@ -35727,10 +35792,11 @@
/**
* g_utf8_strlen:
* @p: pointer to the start of a UTF-8 encoded string
- * @max: the maximum number of bytes to examine. If @max is less than 0, then the string is assumed to be nul-terminated. If @max is 0, @p will not be examined and may be %NULL.
+ * @max: the maximum number of bytes to examine. If @max is less than 0, then the string is assumed to be nul-terminated. If @max is 0, @p will not be examined and may be %NULL. If @max is greater than 0, up to @max bytes are examined
*
* Computes the length of the string in characters, not including
- * the terminating nul character.
+ * the terminating nul character. If the @max'th byte falls in the
+ * middle of a character, the last (partial) character is not counted.
*
* Returns: the length of the string in characters
*/
@@ -35899,7 +35965,7 @@
* being validated otherwise).
*
* Note that g_utf8_validate() returns %FALSE if @max_len is
- * positive and NUL is met before @max_len bytes have been read.
+ * positive and any of the @max_len bytes are NUL.
*
* Returns %TRUE if all of @str was valid. Many GLib and GTK+
* routines <emphasis>require</emphasis> valid UTF-8 as input;
@@ -37086,6 +37152,10 @@
* function and g_variant_iter_next() or g_variant_iter_next_value() on
* the same iterator causes undefined behavior.
*
+ * If you break out of a such a while loop using g_variant_iter_loop() then
+ * you must free or unreference all the unpacked values as you would with
+ * g_variant_get(). Failure to do so will cause a memory leak.
+ *
* See the section on <link linkend='gvariant-format-strings'>GVariant
* Format Strings</link>.
*
@@ -37107,6 +37177,7 @@
* g_variant_get_type_string (value));
*
* /<!-- -->* no need to free 'key' and 'value' here *<!-- -->/
+ * /<!-- -->* unless breaking out of this loop *<!-- -->/
* }
* }
* </programlisting>