From: <kt...@us...> - 2007-12-17 12:25:36
|
Revision: 1045 http://cutter.svn.sourceforge.net/cutter/?rev=1045&view=rev Author: ktou Date: 2007-12-17 04:25:33 -0800 (Mon, 17 Dec 2007) Log Message: ----------- * gyml/gyml-value-hash.c: implemented missing functions. Modified Paths: -------------- gyml/trunk/ChangeLog gyml/trunk/gyml/gyml-value-hash.c gyml/trunk/gyml/gyml-value-hash.h Modified: gyml/trunk/ChangeLog =================================================================== --- gyml/trunk/ChangeLog 2007-12-17 12:17:27 UTC (rev 1044) +++ gyml/trunk/ChangeLog 2007-12-17 12:25:33 UTC (rev 1045) @@ -1,5 +1,7 @@ 2007-12-17 Kouhei Sutou <ko...@co...> + * gyml/gyml-value-hash.c: implemented missing functions. + * gyml/gyml-value-hash.c: made buildable. * configure.ac: required libcutter for cut_value_equal(). Modified: gyml/trunk/gyml/gyml-value-hash.c =================================================================== --- gyml/trunk/gyml/gyml-value-hash.c 2007-12-17 12:17:27 UTC (rev 1044) +++ gyml/trunk/gyml/gyml-value-hash.c 2007-12-17 12:25:33 UTC (rev 1045) @@ -143,9 +143,11 @@ string = g_string_new("{"); table = src_value->data[0].v_pointer; - g_hash_table_foreach(table, transform_entry, string); - if (string->len > strlen("{")) - g_string_truncate(string, string->len - strlen(", ")); + if (table) { + g_hash_table_foreach(table, transform_entry, string); + if (string->len > strlen("{")) + g_string_truncate(string, string->len - strlen(", ")); + } g_string_append(string, "}"); g_value_set_string(dest_value, string->str); @@ -253,7 +255,42 @@ destroy_g_value, destroy_g_value); } +void +gyml_hash_table_insert_with_string_key (GHashTable *table, + const gchar *key, GValue *value) +{ + GValue *key_value, *copied_value; + key_value = g_new0(GValue, 1); + copied_value = g_new0(GValue, 1); + + g_value_init(key_value, G_TYPE_STRING); + g_value_set_string(key_value, key); + + g_value_init(copied_value, G_VALUE_TYPE(value)); + g_value_copy(value, copied_value); + + g_hash_table_insert(table, key_value, copied_value); +} + +GValue * +gyml_hash_table_lookup_by_string_key (GHashTable *table, const gchar *key) +{ + GValue key_value; + GValue *result; + + memset(&key_value, 0, sizeof(GValue)); + + g_value_init(&key_value, G_TYPE_STRING); + g_value_set_string(&key_value, key); + + result = g_hash_table_lookup(table, &key_value); + + g_value_unset(&key_value); + + return result; +} + /* vi:ts=4:nowrap:ai:expandtab:sw=4 */ Modified: gyml/trunk/gyml/gyml-value-hash.h =================================================================== --- gyml/trunk/gyml/gyml-value-hash.h 2007-12-17 12:17:27 UTC (rev 1044) +++ gyml/trunk/gyml/gyml-value-hash.h 2007-12-17 12:25:33 UTC (rev 1045) @@ -37,7 +37,7 @@ GHashTable *table); GHashTable *gyml_hash_table_new (void); -void *gyml_hash_table_insert_with_string_key (GHashTable *table, +void gyml_hash_table_insert_with_string_key (GHashTable *table, const gchar *key, GValue *value); GValue *gyml_hash_table_lookup_by_string_key (GHashTable *table, This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |