Kouhei Sutou
kous****@users*****
2006年 11月 30日 (木) 11:53:15 JST
Index: tomoe/lib/tomoe-char.c diff -u tomoe/lib/tomoe-char.c:1.57 tomoe/lib/tomoe-char.c:1.58 --- tomoe/lib/tomoe-char.c:1.57 Thu Nov 30 11:22:31 2006 +++ tomoe/lib/tomoe-char.c Thu Nov 30 11:53:15 2006 @@ -18,7 +18,7 @@ * Free Software Foundation, Inc., 59 Temple Place, Suite 330, * Boston, MA 02111-1307 USA * - * $Id: tomoe-char.c,v 1.57 2006/11/30 02:22:31 kous Exp $ + * $Id: tomoe-char.c,v 1.58 2006/11/30 02:53:15 kous Exp $ */ #include <stdlib.h> @@ -41,7 +41,7 @@ GList *readings; GList *radicals; TomoeWriting *writing; - TomoeChar *variant; + gchar *variant; GHashTable *meta_data; }; @@ -99,10 +99,10 @@ G_PARAM_READABLE | G_PARAM_WRITABLE); g_object_class_install_property (gobject_class, PROP_WRITING, spec); - spec = g_param_spec_object ("variant", + spec = g_param_spec_string ("variant", N_("Variant"), N_("Variant of the character."), - TOMOE_TYPE_CHAR, + NULL, G_PARAM_READABLE | G_PARAM_WRITABLE); g_object_class_install_property (gobject_class, PROP_VARIANT, spec); @@ -147,13 +147,13 @@ g_list_free (priv->readings); } if (priv->radicals) { - g_list_foreach (priv->radicals, (GFunc)g_object_unref, NULL); + g_list_foreach (priv->radicals, (GFunc)g_free, NULL); g_list_free (priv->radicals); } if (priv->writing) g_object_unref (G_OBJECT (priv->writing)); if (priv->variant) - g_object_unref (G_OBJECT (priv->variant)); + g_free (priv->variant); if (priv->meta_data) g_hash_table_destroy (priv->meta_data); @@ -188,7 +188,7 @@ tomoe_char_set_writing (chr, g_value_get_object (value)); break; case PROP_VARIANT: - tomoe_char_set_variant (chr, g_value_get_object (value)); + tomoe_char_set_variant (chr, g_value_get_string (value)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); @@ -219,7 +219,7 @@ g_value_set_object (value, priv->writing); break; case PROP_VARIANT: - g_value_set_object (value, priv->variant); + g_value_set_string (value, priv->variant); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); @@ -307,15 +307,16 @@ } void -tomoe_char_add_radical (TomoeChar* chr, TomoeChar *radical) +tomoe_char_add_radical (TomoeChar* chr, const gchar *radical) { TomoeCharPrivate *priv; g_return_if_fail (TOMOE_IS_CHAR (chr)); + g_return_if_fail (radical && radical[0] != '\0'); priv = TOMOE_CHAR_GET_PRIVATE (chr); - priv->radicals = g_list_prepend (priv->radicals, g_object_ref (radical)); + priv->radicals = g_list_prepend (priv->radicals, g_strdup (radical)); } TomoeWriting * @@ -344,7 +345,7 @@ priv->writing = g_object_ref (writing); } -TomoeChar * +const gchar * tomoe_char_get_variant (TomoeChar *chr) { TomoeCharPrivate *priv; @@ -357,7 +358,7 @@ } void -tomoe_char_set_variant (TomoeChar *chr, TomoeChar *variant) +tomoe_char_set_variant (TomoeChar *chr, const gchar *variant) { TomoeCharPrivate *priv; @@ -366,8 +367,8 @@ priv = TOMOE_CHAR_GET_PRIVATE (chr); if (priv->variant) - g_object_unref (G_OBJECT (priv->variant)); - priv->variant = g_object_ref (variant); + g_free (priv->variant); + priv->variant = variant ? g_strdup (variant) : NULL; } void Index: tomoe/lib/tomoe-char.h diff -u tomoe/lib/tomoe-char.h:1.51 tomoe/lib/tomoe-char.h:1.52 --- tomoe/lib/tomoe-char.h:1.51 Thu Nov 30 11:22:31 2006 +++ tomoe/lib/tomoe-char.h Thu Nov 30 11:53:15 2006 @@ -18,7 +18,7 @@ * Free Software Foundation, Inc., 59 Temple Place, Suite 330, * Boston, MA 02111-1307 USA * - * $Id: tomoe-char.h,v 1.51 2006/11/30 02:22:31 kous Exp $ + * $Id: tomoe-char.h,v 1.52 2006/11/30 02:53:15 kous Exp $ */ /** @file tomoe-char.h @@ -76,13 +76,13 @@ TomoeReading *reading); const GList *tomoe_char_get_radicals (TomoeChar *chr); void tomoe_char_add_radical (TomoeChar *chr, - TomoeChar *radical); + const gchar *radical); TomoeWriting *tomoe_char_get_writing (TomoeChar *chr); void tomoe_char_set_writing (TomoeChar *chr, TomoeWriting *writing); -TomoeChar *tomoe_char_get_variant (TomoeChar *chr); +const gchar *tomoe_char_get_variant (TomoeChar *chr); void tomoe_char_set_variant (TomoeChar *chr, - TomoeChar *variant); + const gchar *variant); const gchar *tomoe_char_get_meta_data (TomoeChar *chr, const gchar *key); void tomoe_char_register_meta_data (TomoeChar *chr,