1999-08-16 17:58:30 +00:00
|
|
|
<!-- ##### SECTION Title ##### -->
|
|
|
|
Hash Tables
|
|
|
|
|
|
|
|
<!-- ##### SECTION Short_Description ##### -->
|
2000-09-07 16:36:56 +00:00
|
|
|
associations between keys and values so that given a key the value
|
2007-07-22 04:14:54 +00:00
|
|
|
can be found quickly
|
1999-08-16 17:58:30 +00:00
|
|
|
|
|
|
|
<!-- ##### SECTION Long_Description ##### -->
|
|
|
|
<para>
|
2000-09-07 16:36:56 +00:00
|
|
|
A #GHashTable provides associations between keys and values which
|
|
|
|
is optimized so that given a key, the associated value can be found
|
|
|
|
very quickly.
|
|
|
|
</para>
|
|
|
|
<para>
|
|
|
|
Note that neither keys nor values are copied when inserted into the
|
|
|
|
#GHashTable, so they must exist for the lifetime of the #GHashTable.
|
|
|
|
This means that the use of static strings is OK, but temporary
|
consistently refer to GTK+.
* glib/tmpl/caches.sgml, glib/tmpl/datalist.sgml,
glib/tmpl/hash_tables.sgml, glib/tmpl/messages.sgml,
glib/tmpl/misc_utils.sgml: consistently refer to GTK+.
* glib/tmpl/error_reporting.sgml, glib/tmpl/fileutils.sgml,
glib/tmpl/windows.sgml, glib/tmpl/modules.sgml,
glib/tmpl/linked_lists_single.sgml, glib/tmpl/trees-nary.sgml,
glib/tmpl/trees-binary.sgml, glib/tmpl/timers.sgml: Markup fixes.
2001-10-01 18:11:58 +00:00
|
|
|
strings (i.e. those created in buffers and those returned by GTK+ widgets)
|
2000-09-07 16:36:56 +00:00
|
|
|
should be copied with g_strdup() before being inserted.
|
|
|
|
</para>
|
|
|
|
<para>
|
|
|
|
If keys or values are dynamically allocated, you must be careful to ensure
|
|
|
|
that they are freed when they are removed from the #GHashTable, and also
|
|
|
|
when they are overwritten by new insertions into the #GHashTable.
|
|
|
|
It is also not advisable to mix static strings and dynamically-allocated
|
|
|
|
strings in a #GHashTable, because it then becomes difficult to determine
|
|
|
|
whether the string should be freed.
|
|
|
|
</para>
|
|
|
|
<para>
|
|
|
|
To create a #GHashTable, use g_hash_table_new().
|
|
|
|
</para>
|
|
|
|
<para>
|
|
|
|
To insert a key and value into a #GHashTable, use g_hash_table_insert().
|
|
|
|
</para>
|
|
|
|
<para>
|
|
|
|
To lookup a value corresponding to a given key, use g_hash_table_lookup()
|
|
|
|
and g_hash_table_lookup_extended().
|
|
|
|
</para>
|
|
|
|
<para>
|
|
|
|
To remove a key and value, use g_hash_table_remove().
|
|
|
|
</para>
|
|
|
|
<para>
|
2007-12-15 03:54:09 +00:00
|
|
|
To call a function for each key and value pair use g_hash_table_foreach()
|
|
|
|
or use a iterator to iterate over the key/value pairs in the hash table, see
|
|
|
|
#GHashTableIter.
|
2000-09-07 16:36:56 +00:00
|
|
|
</para>
|
|
|
|
<para>
|
|
|
|
To destroy a #GHashTable use g_hash_table_destroy().
|
1999-08-16 17:58:30 +00:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<!-- ##### SECTION See_Also ##### -->
|
|
|
|
<para>
|
|
|
|
|
|
|
|
</para>
|
|
|
|
|
2005-05-02 15:45:45 +00:00
|
|
|
<!-- ##### SECTION Stability_Level ##### -->
|
|
|
|
|
|
|
|
|
1999-08-16 17:58:30 +00:00
|
|
|
<!-- ##### STRUCT GHashTable ##### -->
|
|
|
|
<para>
|
Documentation fixes.
* glib/gconvert.c, glib/grand.c, glib/ghash.c,
glib/gthreadpool.c, glib/gtree.c: Documentation fixes.
* glib/tmpl/allocators.sgml, glib/tmpl/arrays.sgml,
glib/tmpl/arrays_byte.sgml, glib/tmpl/arrays_pointer.sgml,
glib/tmpl/caches.sgml, glib/tmpl/completion.sgml,
glib/tmpl/conversions.sgml,
glib/tmpl/datalist.sgml, glib/tmpl/date.sgml,
glib/tmpl/error_reporting.sgml, glib/tmpl/fileutils.sgml,
glib/tmpl/hash_tables.sgml,
glib/tmpl/hooks.sgml, glib/tmpl/macros.sgml,
glib/tmpl/macros_misc.sgml, glib/tmpl/main.sgml, glib/tmpl/markup.sgml,
glib/tmpl/memory.sgml, glib/tmpl/memory_chunks.sgml,
glib/tmpl/messages.sgml, glib/tmpl/misc_utils.sgml,
glib/tmpl/modules.sgml, glib/tmpl/numerical.sgml,
glib/tmpl/patterns.sgml, glib/tmpl/queue.sgml,
glib/tmpl/shell.sgml, glib/tmpl/spawn.sgml,
glib/tmpl/string_utils.sgml, glib/tmpl/thread_pools.sgml,
glib/tmpl/threads.sgml, glib/tmpl/timers.sgml,
glib/tmpl/trees-binary.sgml, glib/tmpl/trees-nary.sgml,
glib/tmpl/type_conversion.sgml, glib/tmpl/unicode.sgml,
glib/tmpl/warnings.sgml, glib/tmpl/windows.sgml:
Improve markup of examples, general consistency improvements.
2001-12-12 20:32:07 +00:00
|
|
|
The <structname>GHashTable</structname> struct is an opaque data structure to represent a
|
2000-09-07 16:36:56 +00:00
|
|
|
<link linkend="glib-Hash-Tables">Hash Table</link>.
|
|
|
|
It should only be accessed via the following functions.
|
1999-08-16 17:58:30 +00:00
|
|
|
</para>
|
|
|
|
|
|
|
|
|
|
|
|
<!-- ##### FUNCTION g_hash_table_new ##### -->
|
|
|
|
<para>
|
2001-03-30 18:14:41 +00:00
|
|
|
|
1999-08-16 17:58:30 +00:00
|
|
|
</para>
|
|
|
|
|
2001-03-30 18:14:41 +00:00
|
|
|
@hash_func:
|
|
|
|
@key_equal_func:
|
|
|
|
@Returns:
|
1999-08-16 17:58:30 +00:00
|
|
|
|
|
|
|
|
2001-05-04 17:01:56 +00:00
|
|
|
<!-- ##### FUNCTION g_hash_table_new_full ##### -->
|
|
|
|
<para>
|
|
|
|
|
|
|
|
</para>
|
|
|
|
|
|
|
|
@hash_func:
|
|
|
|
@key_equal_func:
|
|
|
|
@key_destroy_func:
|
|
|
|
@value_destroy_func:
|
|
|
|
@Returns:
|
|
|
|
|
|
|
|
|
1999-08-16 17:58:30 +00:00
|
|
|
<!-- ##### USER_FUNCTION GHashFunc ##### -->
|
|
|
|
<para>
|
2000-09-07 16:36:56 +00:00
|
|
|
Specifies the type of the hash function which is passed to
|
|
|
|
g_hash_table_new() when a #GHashTable is created.
|
|
|
|
</para>
|
|
|
|
<para>
|
2001-09-30 22:49:01 +00:00
|
|
|
The function is passed a key and should return a #guint hash value.
|
2000-09-07 16:36:56 +00:00
|
|
|
The functions g_direct_hash(), g_int_hash() and g_str_hash() provide
|
|
|
|
hash functions which can be used when the key is a #gpointer, #gint, and
|
|
|
|
#gchar* respectively.
|
|
|
|
</para>
|
|
|
|
<para>
|
2007-12-15 03:54:09 +00:00
|
|
|
<!-- FIXME: Need more here. -->
|
2000-09-07 16:36:56 +00:00
|
|
|
The hash values should be evenly distributed over a fairly large range?
|
|
|
|
The modulus is taken with the hash table size (a prime number)
|
|
|
|
to find the 'bucket' to place each key into.
|
|
|
|
The function should also be very fast, since it is called for each key
|
|
|
|
lookup.
|
1999-08-16 17:58:30 +00:00
|
|
|
</para>
|
|
|
|
|
2000-09-07 16:36:56 +00:00
|
|
|
@key: a key.
|
|
|
|
@Returns: the hash value corresponding to the key.
|
1999-08-16 17:58:30 +00:00
|
|
|
|
|
|
|
|
2000-12-29 15:11:03 +00:00
|
|
|
<!-- ##### USER_FUNCTION GEqualFunc ##### -->
|
|
|
|
<para>
|
|
|
|
Specifies the type of a function used to test two values for
|
2001-09-30 22:49:01 +00:00
|
|
|
equality. The function should return %TRUE if both values are equal and
|
|
|
|
%FALSE otherwise.
|
2000-12-29 15:11:03 +00:00
|
|
|
</para>
|
|
|
|
|
|
|
|
@a: a value.
|
|
|
|
@b: a value to compare with.
|
2001-09-30 22:49:01 +00:00
|
|
|
@Returns: %TRUE if @a = @b; %FALSE otherwise.
|
2000-12-29 15:11:03 +00:00
|
|
|
|
|
|
|
|
1999-08-16 17:58:30 +00:00
|
|
|
<!-- ##### FUNCTION g_hash_table_insert ##### -->
|
|
|
|
<para>
|
2001-03-30 18:14:41 +00:00
|
|
|
|
2000-09-07 16:36:56 +00:00
|
|
|
</para>
|
1999-08-16 17:58:30 +00:00
|
|
|
|
2001-03-30 18:14:41 +00:00
|
|
|
@hash_table:
|
|
|
|
@key:
|
|
|
|
@value:
|
1999-08-16 17:58:30 +00:00
|
|
|
|
|
|
|
|
2001-05-04 17:01:56 +00:00
|
|
|
<!-- ##### FUNCTION g_hash_table_replace ##### -->
|
|
|
|
<para>
|
|
|
|
|
|
|
|
</para>
|
|
|
|
|
|
|
|
@hash_table:
|
|
|
|
@key:
|
|
|
|
@value:
|
|
|
|
|
|
|
|
|
1999-08-16 17:58:30 +00:00
|
|
|
<!-- ##### FUNCTION g_hash_table_size ##### -->
|
|
|
|
<para>
|
2001-03-30 18:14:41 +00:00
|
|
|
|
1999-08-16 17:58:30 +00:00
|
|
|
</para>
|
|
|
|
|
2001-03-30 18:14:41 +00:00
|
|
|
@hash_table:
|
|
|
|
@Returns:
|
1999-08-16 17:58:30 +00:00
|
|
|
|
|
|
|
|
|
|
|
<!-- ##### FUNCTION g_hash_table_lookup ##### -->
|
|
|
|
<para>
|
2001-03-30 18:14:41 +00:00
|
|
|
|
1999-08-16 17:58:30 +00:00
|
|
|
</para>
|
|
|
|
|
2001-03-30 18:14:41 +00:00
|
|
|
@hash_table:
|
|
|
|
@key:
|
|
|
|
@Returns:
|
1999-08-16 17:58:30 +00:00
|
|
|
|
|
|
|
|
|
|
|
<!-- ##### FUNCTION g_hash_table_lookup_extended ##### -->
|
|
|
|
<para>
|
2001-03-30 18:14:41 +00:00
|
|
|
|
1999-08-16 17:58:30 +00:00
|
|
|
</para>
|
|
|
|
|
2001-03-30 18:14:41 +00:00
|
|
|
@hash_table:
|
|
|
|
@lookup_key:
|
|
|
|
@orig_key:
|
|
|
|
@value:
|
|
|
|
@Returns:
|
1999-08-16 17:58:30 +00:00
|
|
|
|
|
|
|
|
|
|
|
<!-- ##### FUNCTION g_hash_table_foreach ##### -->
|
|
|
|
<para>
|
2001-03-30 18:14:41 +00:00
|
|
|
|
1999-08-16 17:58:30 +00:00
|
|
|
</para>
|
|
|
|
|
2001-03-30 18:14:41 +00:00
|
|
|
@hash_table:
|
|
|
|
@func:
|
|
|
|
@user_data:
|
1999-08-16 17:58:30 +00:00
|
|
|
|
|
|
|
|
2004-02-24 19:27:19 +00:00
|
|
|
<!-- ##### FUNCTION g_hash_table_find ##### -->
|
|
|
|
<para>
|
|
|
|
|
|
|
|
</para>
|
|
|
|
|
|
|
|
@hash_table:
|
|
|
|
@predicate:
|
|
|
|
@user_data:
|
|
|
|
@Returns:
|
|
|
|
|
|
|
|
|
1999-08-16 17:58:30 +00:00
|
|
|
<!-- ##### USER_FUNCTION GHFunc ##### -->
|
|
|
|
<para>
|
2000-09-07 16:36:56 +00:00
|
|
|
Specifies the type of the function passed to g_hash_table_foreach().
|
|
|
|
It is called with each key/value pair, together with the @user_data parameter
|
|
|
|
which is passed to g_hash_table_foreach().
|
1999-08-16 17:58:30 +00:00
|
|
|
</para>
|
|
|
|
|
2000-09-07 16:36:56 +00:00
|
|
|
@key: a key.
|
|
|
|
@value: the value corresponding to the key.
|
|
|
|
@user_data: user data passed to g_hash_table_foreach().
|
1999-08-16 17:58:30 +00:00
|
|
|
|
|
|
|
|
|
|
|
<!-- ##### FUNCTION g_hash_table_remove ##### -->
|
|
|
|
<para>
|
2001-03-30 18:14:41 +00:00
|
|
|
|
2000-09-07 16:36:56 +00:00
|
|
|
</para>
|
1999-08-16 17:58:30 +00:00
|
|
|
|
2001-03-30 18:14:41 +00:00
|
|
|
@hash_table:
|
|
|
|
@key:
|
2000-12-29 15:11:03 +00:00
|
|
|
@Returns:
|
1999-08-16 17:58:30 +00:00
|
|
|
|
|
|
|
|
2001-05-04 17:01:56 +00:00
|
|
|
<!-- ##### FUNCTION g_hash_table_steal ##### -->
|
|
|
|
<para>
|
|
|
|
|
|
|
|
</para>
|
|
|
|
|
|
|
|
@hash_table:
|
|
|
|
@key:
|
|
|
|
@Returns:
|
|
|
|
|
|
|
|
|
1999-08-16 17:58:30 +00:00
|
|
|
<!-- ##### FUNCTION g_hash_table_foreach_remove ##### -->
|
|
|
|
<para>
|
2001-03-30 18:14:41 +00:00
|
|
|
|
1999-08-16 17:58:30 +00:00
|
|
|
</para>
|
|
|
|
|
2001-03-30 18:14:41 +00:00
|
|
|
@hash_table:
|
|
|
|
@func:
|
|
|
|
@user_data:
|
|
|
|
@Returns:
|
1999-08-16 17:58:30 +00:00
|
|
|
|
|
|
|
|
2001-05-04 17:01:56 +00:00
|
|
|
<!-- ##### FUNCTION g_hash_table_foreach_steal ##### -->
|
|
|
|
<para>
|
|
|
|
|
|
|
|
</para>
|
|
|
|
|
|
|
|
@hash_table:
|
|
|
|
@func:
|
|
|
|
@user_data:
|
|
|
|
@Returns:
|
|
|
|
|
|
|
|
|
2006-06-05 17:34:53 +00:00
|
|
|
<!-- ##### FUNCTION g_hash_table_remove_all ##### -->
|
|
|
|
<para>
|
|
|
|
|
|
|
|
</para>
|
|
|
|
|
|
|
|
@hash_table:
|
|
|
|
|
|
|
|
|
|
|
|
<!-- ##### FUNCTION g_hash_table_steal_all ##### -->
|
|
|
|
<para>
|
|
|
|
|
|
|
|
</para>
|
|
|
|
|
|
|
|
@hash_table:
|
|
|
|
|
|
|
|
|
2007-05-03 05:09:20 +00:00
|
|
|
<!-- ##### FUNCTION g_hash_table_get_keys ##### -->
|
|
|
|
<para>
|
|
|
|
|
|
|
|
</para>
|
|
|
|
|
|
|
|
@hash_table:
|
|
|
|
@Returns:
|
|
|
|
|
|
|
|
|
|
|
|
<!-- ##### FUNCTION g_hash_table_get_values ##### -->
|
|
|
|
<para>
|
|
|
|
|
|
|
|
</para>
|
|
|
|
|
|
|
|
@hash_table:
|
|
|
|
@Returns:
|
|
|
|
|
|
|
|
|
1999-08-16 17:58:30 +00:00
|
|
|
<!-- ##### USER_FUNCTION GHRFunc ##### -->
|
|
|
|
<para>
|
2000-09-07 16:36:56 +00:00
|
|
|
Specifies the type of the function passed to g_hash_table_foreach_remove().
|
|
|
|
It is called with each key/value pair, together with the @user_data parameter
|
|
|
|
passed to g_hash_table_foreach_remove().
|
2001-09-30 22:49:01 +00:00
|
|
|
It should return %TRUE if the key/value pair should be removed from the
|
2000-09-07 16:36:56 +00:00
|
|
|
#GHashTable.
|
1999-08-16 17:58:30 +00:00
|
|
|
</para>
|
|
|
|
|
2000-09-07 16:36:56 +00:00
|
|
|
@key: a key.
|
|
|
|
@value: the value associated with the key.
|
|
|
|
@user_data: user data passed to g_hash_table_remove().
|
2001-09-30 22:49:01 +00:00
|
|
|
@Returns: %TRUE if the key/value pair should be removed from the #GHashTable.
|
1999-08-16 17:58:30 +00:00
|
|
|
|
|
|
|
|
2001-04-19 14:50:44 +00:00
|
|
|
<!-- ##### MACRO g_hash_table_freeze ##### -->
|
1999-08-16 17:58:30 +00:00
|
|
|
<para>
|
2001-04-19 14:50:44 +00:00
|
|
|
This function is deprecated and will be removed in the next major
|
|
|
|
release of GLib. It does nothing.
|
1999-08-16 17:58:30 +00:00
|
|
|
</para>
|
|
|
|
|
2002-12-05 22:32:20 +00:00
|
|
|
@hash_table: a #GHashTable
|
1999-08-16 17:58:30 +00:00
|
|
|
|
|
|
|
|
2001-04-19 14:50:44 +00:00
|
|
|
<!-- ##### MACRO g_hash_table_thaw ##### -->
|
1999-08-16 17:58:30 +00:00
|
|
|
<para>
|
2001-04-19 14:50:44 +00:00
|
|
|
This function is deprecated and will be removed in the next major
|
|
|
|
release of GLib. It does nothing.
|
1999-08-16 17:58:30 +00:00
|
|
|
</para>
|
|
|
|
|
2002-12-05 22:32:20 +00:00
|
|
|
@hash_table: a #GHashTable
|
1999-08-16 17:58:30 +00:00
|
|
|
|
|
|
|
|
|
|
|
<!-- ##### FUNCTION g_hash_table_destroy ##### -->
|
|
|
|
<para>
|
2001-03-30 18:14:41 +00:00
|
|
|
|
1999-08-16 17:58:30 +00:00
|
|
|
</para>
|
|
|
|
|
2001-03-30 18:14:41 +00:00
|
|
|
@hash_table:
|
1999-08-16 17:58:30 +00:00
|
|
|
|
|
|
|
|
2005-12-09 18:05:25 +00:00
|
|
|
<!-- ##### FUNCTION g_hash_table_ref ##### -->
|
|
|
|
<para>
|
|
|
|
|
|
|
|
</para>
|
|
|
|
|
|
|
|
@hash_table:
|
|
|
|
@Returns:
|
|
|
|
|
|
|
|
|
|
|
|
<!-- ##### FUNCTION g_hash_table_unref ##### -->
|
|
|
|
<para>
|
|
|
|
|
|
|
|
</para>
|
|
|
|
|
|
|
|
@hash_table:
|
|
|
|
|
|
|
|
|
2007-12-21 00:37:41 +00:00
|
|
|
<!-- ##### STRUCT GHashTableIter ##### -->
|
|
|
|
<para>
|
2008-06-15 00:04:59 +00:00
|
|
|
A GHashTableIter structure represents an iterator that can be
|
|
|
|
used to iterate over the elements of a #GHashTable. GHashTableIter
|
|
|
|
structures are typically allocated on the stack and then initialized
|
|
|
|
with g_hash_table_iter_init().
|
2007-12-21 00:37:41 +00:00
|
|
|
</para>
|
|
|
|
|
|
|
|
|
2007-12-15 03:54:09 +00:00
|
|
|
<!-- ##### FUNCTION g_hash_table_iter_init ##### -->
|
|
|
|
<para>
|
|
|
|
|
|
|
|
</para>
|
|
|
|
|
|
|
|
@iter:
|
|
|
|
@hash_table:
|
|
|
|
|
|
|
|
|
|
|
|
<!-- ##### FUNCTION g_hash_table_iter_next ##### -->
|
|
|
|
<para>
|
|
|
|
|
|
|
|
</para>
|
|
|
|
|
|
|
|
@iter:
|
|
|
|
@key:
|
|
|
|
@value:
|
|
|
|
@Returns:
|
|
|
|
|
|
|
|
|
|
|
|
<!-- ##### FUNCTION g_hash_table_iter_get_hash_table ##### -->
|
|
|
|
<para>
|
|
|
|
|
|
|
|
</para>
|
|
|
|
|
|
|
|
@iter:
|
|
|
|
@Returns:
|
|
|
|
|
|
|
|
|
|
|
|
<!-- ##### FUNCTION g_hash_table_iter_remove ##### -->
|
|
|
|
<para>
|
|
|
|
|
|
|
|
</para>
|
|
|
|
|
|
|
|
@iter:
|
|
|
|
|
|
|
|
|
|
|
|
<!-- ##### FUNCTION g_hash_table_iter_steal ##### -->
|
|
|
|
<para>
|
|
|
|
|
|
|
|
</para>
|
|
|
|
|
|
|
|
@iter:
|
|
|
|
|
|
|
|
|
1999-08-16 17:58:30 +00:00
|
|
|
<!-- ##### FUNCTION g_direct_equal ##### -->
|
|
|
|
<para>
|
2005-02-02 06:07:14 +00:00
|
|
|
|
1999-08-16 17:58:30 +00:00
|
|
|
</para>
|
|
|
|
|
2005-05-01 21:53:02 +00:00
|
|
|
@v1:
|
|
|
|
@v2:
|
|
|
|
@Returns:
|
1999-08-16 17:58:30 +00:00
|
|
|
|
|
|
|
|
|
|
|
<!-- ##### FUNCTION g_direct_hash ##### -->
|
|
|
|
<para>
|
2005-02-02 06:07:14 +00:00
|
|
|
|
1999-08-16 17:58:30 +00:00
|
|
|
</para>
|
|
|
|
|
2005-02-02 06:07:14 +00:00
|
|
|
@v:
|
|
|
|
@Returns:
|
1999-08-16 17:58:30 +00:00
|
|
|
|
|
|
|
|
|
|
|
<!-- ##### FUNCTION g_int_equal ##### -->
|
|
|
|
<para>
|
2005-02-02 06:07:14 +00:00
|
|
|
|
1999-08-16 17:58:30 +00:00
|
|
|
</para>
|
|
|
|
|
2005-05-01 21:53:02 +00:00
|
|
|
@v1:
|
|
|
|
@v2:
|
|
|
|
@Returns:
|
1999-08-16 17:58:30 +00:00
|
|
|
|
|
|
|
|
|
|
|
<!-- ##### FUNCTION g_int_hash ##### -->
|
|
|
|
<para>
|
2005-02-02 06:07:14 +00:00
|
|
|
|
1999-08-16 17:58:30 +00:00
|
|
|
</para>
|
|
|
|
|
2005-05-01 21:53:02 +00:00
|
|
|
@v:
|
2005-02-02 06:07:14 +00:00
|
|
|
@Returns:
|
1999-08-16 17:58:30 +00:00
|
|
|
|
|
|
|
|
|
|
|
<!-- ##### FUNCTION g_str_equal ##### -->
|
|
|
|
<para>
|
|
|
|
</para>
|
|
|
|
|
2005-05-01 21:53:02 +00:00
|
|
|
@v1:
|
2005-05-02 15:45:45 +00:00
|
|
|
@v2:
|
2005-05-05 14:57:29 +00:00
|
|
|
@Returns:
|
1999-08-16 17:58:30 +00:00
|
|
|
|
|
|
|
|
|
|
|
<!-- ##### FUNCTION g_str_hash ##### -->
|
|
|
|
<para>
|
|
|
|
</para>
|
|
|
|
|
2005-05-05 14:57:29 +00:00
|
|
|
@v:
|
|
|
|
@Returns:
|
1999-08-16 17:58:30 +00:00
|
|
|
|
|
|
|
|