On Thu, Jan 18, 2007 at 07:18:51PM -0800, William M. Brack wrote:
> Mike Mueller wrote:
> > I'm using a memory text writer as in the function testXmlwriterMemory()
> > here: http://www.xmlsoft.org/examples/testWriter.c
> >
> > I create a buffer, a writer, start a document, write some elements, end
> > the document. Every one of the write calls returns 0 (no bytes written,
> > but no errors either).
> >
> > Examining the buffer in GDB shows it empty:
> >
> > $10 = {
> > content = 0x3d6380 "",
> > use = 0,
> > size = 4096,
> > alloc = XML_BUFFER_ALLOC_EXACT
> > }
> >
> > Examining the writer's out->context field, it's a void pointer with the
> > same address as the buffer I handed it when the writer was created.
> >
> > Examining the writer's out->buffer field shows it contains all the data
> > I wrote!
> >
> > $14 = {
> > content = 0x3d73f8 "<?xml version=\"1.0\" encoding=\"UTF-8\"?>...",
> > use = 192,
> > size = 4096,
> > alloc = XML_BUFFER_ALLOC_DOUBLEIT
> > }
> >
> > I truncated the content field because it was large, but it had my
> > complete XML document inside it. So the writer is apparently doing most
> > of its job, except it won't put any data into my buffer.
> >
> > Anyone know why this would happen?
> >
> > --
> > Mike Mueller
> > [EMAIL PROTECTED]
>
> If you compile and run the test program you reference, does it work OK
> (it certainly does for me)? Assuming that it does, then what are the
> differences between your code and the function in the test program? What
> does gdb show for the test program buffer? When you say "Every one of
> the write calls returns 0" are you describing the return code from a
> fuction like xmlTextWriterStartElement? If so, 0 means success, and a
> negative value means error.
>
> Bill
Thanks, I guess that should have been my next step.
I compiled the test program and it works fine. It turns out the data
gets dumped into the buffer when you call xmlFreeTextWriter. I wasn't
freeing the writer until much after I tried to find my data in the
buffer. Of course, the documentation for this function simply says:
Deallocate all the resources associated to the writer
Yay for confusing APIs.
Mike
--
Mike Mueller
[EMAIL PROTECTED]
_______________________________________________
xml mailing list, project page http://xmlsoft.org/
[email protected]
http://mail.gnome.org/mailman/listinfo/xml