[ 
https://issues.apache.org/jira/browse/XERCESC-2107?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16098540#comment-16098540
 ] 

Scott Cantor commented on XERCESC-2107:
---------------------------------------

That said, isn't this your bug? You're calling adopt(), which means you own the 
memory from the objects and you're assigning that to const pointers you don't 
free. The leak looks like yours to me.

> TranscodeFromStr::TranscodeFromStr definate leak alert 
> -------------------------------------------------------
>
>                 Key: XERCESC-2107
>                 URL: https://issues.apache.org/jira/browse/XERCESC-2107
>             Project: Xerces-C++
>          Issue Type: Bug
>    Affects Versions: 3.1.1
>         Environment: RHEL 3.10
>            Reporter: vikas
>
> Memory analyzer tool (valgrind) showing memory leak at TranscodeFromStr. 
> No exception raised when constructing TranscodeFromStr object. 
> Below is snip from valgrind 
> ==8884== 20,770 bytes in 1 blocks are possibly lost in loss record 2,123 of 
> 2,137
> ==8884==    at 0x4C2A243: operator new(unsigned long) 
> (vg_replace_malloc.c:334)
> ==8884==    by 0xA374512: xercesc_3_1::MemoryManagerImpl::allocate(unsigned 
> long) (in /usr/openv/lib/libvxxml4c.so.6)
> ==8884==    by 0xA2E4DFD: xercesc_3_1::TranscodeFromStr::transcode(unsigned 
> char const*, unsigned long, xercesc_3_1::XMLTranscoder*) (in 
> /usr/openv/lib/libvxxml4c.so.6)
> ==8884==    by 0xA2E50BC: 
> xercesc_3_1::TranscodeFromStr::TranscodeFromStr(unsigned char const*, 
> unsigned long, char const*, xercesc_3_1::MemoryManager*) (in 
> /usr/openv/lib/libvxxml4c.so.6)
> I called XMLPlatformUtils::Initialize() at the time of loading and 
> XMLPlatformUtils::Terminate() when exiting.  
> {code}
> XMLPlatformUtils::Initialize();
>   {
>         std::string sample = "<?xml version=\"1.0\" encoding=\"UTF-8\" 
> standalone=\"no\" ?> <testxml> <IDList> <ID dentifier=\"demo1\" 
> Name=\"demo1\"> </ID> <ID dentifier=\"demo2\" Name=\"demo2\"> </ID> </IDList> 
> </testxml>";
>         XMLCh * xmlStr = xercesc::XMLString::transcode (sample.c_str())
>         TranscodeToStr transcodeTo(xmlStr, "UTF-8");
>         const XMLByte* bytes = transcodeTo.adopt();
>         xercesc::XMLString::release(&xmlStr);
>         TranscodeFromStr transcodeFrom(bytes, transcodeTo.length(),"UTF-8");
>         XMLCh * xmlch_ptr = transcodeFrom.adopt();
>         char * c_ptr = xercesc::XMLString::transcode(xmlch_ptr);
>         std::string encodedstr(c_ptr);
>         xercesc::XMLString::release(&c_ptr);
>   }
>   XMLPlatformUtils::Terminate();
> {code}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to