Don't forget to change length when setting text content.
[cascardo/atompub.git] / atom / content.c
index 8dfbdd0..2adb776 100644 (file)
@@ -139,9 +139,15 @@ atom_content_src_set (AtomContent *content, char *src)
   if (content->src)
     g_free (content->src);
   if (content->content)
-    g_free (content->content);
+    {
+      g_free (content->content);
+      content->content = NULL;
+    }
   if (content->xmlcontent)
-    xmlFreeNode (content->xmlcontent);
+    {
+      xmlFreeNode (content->xmlcontent);
+      content->xmlcontent = NULL;
+    }
   content->src = g_strdup (src);
 }
 
@@ -173,11 +179,18 @@ atom_content_content_set (AtomContent *content, char *buffer, size_t len)
   if (content->content)
     g_free (content->content);
   if (content->src)
-    g_free (content->src);
+    {
+      g_free (content->src);
+      content->src = NULL;
+    }
   if (content->xmlcontent)
-    xmlFreeNode (content->xmlcontent);
+    {
+      xmlFreeNode (content->xmlcontent);
+      content->xmlcontent = NULL;
+    }
   content->content = g_malloc (len);
   memcpy (content->content, buffer, len);
+  content->content_len = len;
 }
 
 void
@@ -246,8 +259,14 @@ atom_content_content_set_xmlnode (AtomContent *content, xmlNodePtr node)
   if (content->xmlcontent)
     xmlFreeNode (content->xmlcontent);
   if (content->content)
-    g_free (content->content);
+    {
+      g_free (content->content);
+      content->content = NULL;
+    }
   if (content->src)
-    g_free (content->src);
+    {
+      g_free (content->src);
+      content->src = NULL;
+    }
   content->xmlcontent = xmlCopyNodeList (node);
 }