Hey Aaron,

Looks like the xmlOutputBufferPtr never gets freed.

Yup, exactly right. I posted a fix to trunk and sent another email to the list, but somehow it never made it through.

Index: ext/libxml/ruby_xml_node.c
===================================================================
--- ext/libxml/ruby_xml_node.c  (revision 693)
+++ ext/libxml/ruby_xml_node.c  (working copy)
@@ -570,10 +570,16 @@
   xmlNodeDumpOutput(output, xnode->doc, xnode, level, indent, encoding);
   xmlOutputBufferFlush(output);

+  VALUE string = Qnil;
+
   if (output->conv)
-    return rb_str_new2((const char*) output->conv->content);
+    string = rb_str_new2((const char*) output->conv->content);
   else
-    return rb_str_new2((const char*) output->buffer->content);
+    string = rb_str_new2((const char*) output->buffer->content);
+
+  xmlOutputBufferClose(output);
+
+  return string;
 }


Yup, trunk updated to do exactly this.  Thanks for the patch.

Charlie

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature

_______________________________________________
libxml-devel mailing list
libxml-devel@rubyforge.org
http://rubyforge.org/mailman/listinfo/libxml-devel

Reply via email to