svnno****@sourc*****
svnno****@sourc*****
Thu Sep 10 12:49:18 JST 2009
Revision: 3834
http://sourceforge.jp/projects/kazehakase/svn/view?view=rev&revision=3834
Author: ikezoe
Date: 2009-09-10 12:49:17 +0900 (Thu, 10 Sep 2009)
Log Message:
-----------
2009-09-09 Hiroyuki Ikezoe <poinc****@ikezo*****>
* src/kz-xml.c: Free variables in finalize()
instead of dispose(), and use g_file_set_contentes() instead of
fwrite() etc.
Modified Paths:
--------------
kazehakase/trunk/ChangeLog
kazehakase/trunk/src/kz-xml.c
Modified: kazehakase/trunk/ChangeLog
===================================================================
--- kazehakase/trunk/ChangeLog 2009-09-08 03:10:08 UTC (rev 3833)
+++ kazehakase/trunk/ChangeLog 2009-09-10 03:49:17 UTC (rev 3834)
@@ -1,3 +1,9 @@
+2009-09-09 Hiroyuki Ikezoe <poinc****@ikezo*****>
+
+ * src/kz-xml.c: Free variables in finalize()
+ instead of dispose(), and use g_file_set_contentes() instead of
+ fwrite() etc.
+
2009-09-08 Hiroyuki Ikezoe <poinc****@ikezo*****>
* src/actions/kz-actions.c: Fix memory leak.
Modified: kazehakase/trunk/src/kz-xml.c
===================================================================
--- kazehakase/trunk/src/kz-xml.c 2009-09-08 03:10:08 UTC (rev 3833)
+++ kazehakase/trunk/src/kz-xml.c 2009-09-10 03:49:17 UTC (rev 3834)
@@ -35,6 +35,7 @@
#define KZ_XML_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), KZ_TYPE_XML, KzXMLPrivate))
static void dispose (GObject *object);
+static void finalize (GObject *object);
static void kz_xml_attr_free (KzXMLAttr *attr);
gchar *get_cdata_as_plaintext(gpointer content);
@@ -50,6 +51,7 @@
object_class = G_OBJECT_CLASS(klass);
object_class->dispose = dispose;
+ object_class->finalize = finalize;
g_type_class_add_private (object_class, sizeof(KzXMLPrivate));
}
@@ -72,15 +74,6 @@
{
KzXML *xml = KZ_XML(object);
- g_free(xml->file);
- xml->file = NULL;
-
- g_free(xml->dtd);
- xml->dtd = NULL;
-
- g_free(xml->encoding);
- xml->encoding = NULL;
-
if (xml->root)
kz_xml_node_unref(xml->root);
xml->root = NULL;
@@ -90,6 +83,20 @@
}
+static void
+finalize (GObject *object)
+{
+ KzXML *xml = KZ_XML(object);
+
+ g_free(xml->file);
+ g_free(xml->dtd);
+ g_free(xml->encoding);
+
+ if (G_OBJECT_CLASS (kz_xml_parent_class)->finalize)
+ G_OBJECT_CLASS (kz_xml_parent_class)->finalize(object);
+}
+
+
KzXML *
kz_xml_new (void)
{
@@ -311,30 +318,17 @@
gboolean
kz_xml_save (KzXML *xml, const gchar *filename)
{
- FILE *fp;
const gchar *file = filename ? filename : xml->file;
gchar *str;
- size_t len;
+ gboolean success;
g_return_val_if_fail(file && *file, FALSE);
- fp = fopen(file, "w");
- if (!fp) return FALSE;
-
str = kz_xml_node_to_xml(xml->root);
-
- if (!str || !*str)
- {
- g_free(str);
- fclose(fp);
- return FALSE;
- }
-
- len = fwrite(str, strlen(str), 1, fp);
- fclose(fp);
+ success =g_file_set_contents(file, str, -1, NULL);
g_free(str);
- return TRUE;
+ return success;
}