Hello Dmitry,

I'm afraid that XMLPlatformUtils::Terminate() can be called only once,
at the end of the program. My problem is that I would like to process
many (thousands) xml files in one program run by one stylesheet, and
that would need to free the memory more often. I was probably unclear in
my question, I'm sorry.

Vladimir

> Hello Vladimir!
> Try to call
> 
> XMLPlatformUtils::Terminate();
> 
> in the end of your program
> Dmitry
> 
> 
> 
>                                                                        
>                       Vladimir Marek                                   
>                       <[EMAIL PROTECTED]        To:       [EMAIL PROTECTED]
>                       cz>                      cc:                     
>                                                Subject:  
> XercesDOMWrapperParsedSource memory problem
>                       06/08/2003 05:03                                 
>                       AM                                               
>                       Please respond to                                
>                       xalan-dev                                        
>                                                                        
>                                                                        
> 
> 
> 
> 
> Hello,
> 
> I found that my program is leaking, and after some investigation I found
> this minimal testcase:
> 
> -- CUT --
> using namespace std;
> 
> #include <iostream>
> 
> #include <xercesc/util/PlatformUtils.hpp>
> #include <xercesc/dom/DOM.hpp>
> 
> #include <XercesParserLiaison/XercesDOMSupport.hpp>
> #include <XercesParserLiaison/XercesParserLiaison.hpp>
> #include <XalanTransformer/XercesDOMWrapperParsedSource.hpp>
> 
> XALAN_CPP_NAMESPACE_USE
> XERCES_CPP_NAMESPACE_USE
> 
> void process(
>                 DOMDocument *input,
>                 XercesParserLiaison &theParserLiaison,
>                 XercesDOMSupport &theDOMSupport)
> {
> 
>         XercesDOMWrapperParsedSource parsedSource
>                 (input, theParserLiaison, theDOMSupport);
> 
> }
> 
> int main (int argc, char **argv) {
>         XMLPlatformUtils::Initialize();
> 
>         DOMImplementation* impl =
>                 DOMImplementationRegistry::getDOMImplementation
>                         (XMLString::transcode("Core"));
> 
>         DOMDocument* doc =
>                 impl->createDocument( 0, XMLString::transcode("root"),
> 0);
> 
>         XercesDOMSupport theDOMSupport;
>         XercesParserLiaison theParserLiaison;
> 
>         while (1) {
>                 process (doc, theParserLiaison, theDOMSupport);
>         }
> 
>         return 0;
> }
> -- CUT --
> 
> Problem is in the function 'process', each construction of
> XercesDOMWrapperParsedSource takes some memory, but it's never freed.
> Probably I'm missing something, please could you help me a bit ?
> 
> PS: I'm not sure if I am at the correct list, if not, would you be so
> kind and redirect me ?
> 
> Thank you
> --
>              Vladimír Marek

Reply via email to