[EMAIL PROTECTED] (Jason E. Stewart) writes:

> Brian Faull <[EMAIL PROTECTED]> writes:
> 
> Depends on what you are doing - if it is DOM related, then yes, you
> must tell the parser to release the memory, otherwise it grows. From
> the API docs:
> 
>    void AbstractDOMParser::resetDocumentPool()
>         
>   Reset the documents vector pool and release all the associated memory
>   back to the system.
>   
>   When parsing a document using a DOM parser, all memory allocated for a
>   DOM tree is associated to the DOM document.
>   
>   If you do multiple parse using the same DOM parser instance, then
>   multiple DOM documents will be generated and saved in a vector
>   pool. All these documents (and thus all the allocated memory) won't be
>   deleted until the parser instance is destroyed.
>   
>   If you don't need these DOM documents anymore and don't want to
>   destroy the DOM parser instance at this moment, then you can call this
>   method to reset the document vector pool and release all the allocated
>   memory back to the system.

As a note - if you create a new parser each time, this should *not*
cause a leak:

   while (1) {
     my $parser = XML::Xerces::XercesDOMParser->new();
     $parser->parse(XML::Xerces::MemBufInputSource->new('<test/>'));
   }

if it does, that's a *big* problem, and I'd like to know about it.

Cheers,
jas.

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to