[kazehakase-svn] [3834] 2009-09-09 Hiroyuki Ikezoe <poinc****@ikezo*****>

Zurück zum Archiv-Index

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;
 }
 
 




More information about the Kazehakase-cvs mailing list
Zurück zum Archiv-Index