Thank you for Xerces, the team I develop on have been using Xerces since its' release & have had been quite satisfied with it. Well done!
We have recently compiled our project using Rational Purify & have discovered several memory allocations which remain unreleased when the dll terminates. Version number of Xerces-C : 1.0.0 Which OS platform/version you are using: NT4 Which compiler/version you are using: VC6 This can be replicated by initialising the platform (PlatformUtil::Initialize()) and parsing any XML file. The allocations in question are: XMLAttr.cpp: fPrefix is allocated & never destroyed. XMLScanner.cpp: gMsgLoader is allocated & never destroyed. XMLScanner2.cpp Lines 764 & 773: XMLPlatformUtils::getBasePath() returns a string which is not destroyed. PlatformUtils.cpp: gMsgMutex is allocated & never destroyed. defXCode is allocated & never destroyed. fgTransService is allocated & never destroyed. fgLibLocation is allocated & never destroyed. XMLException.cpp: gLoader is allocated & never destroyed. Thanks again. Regards, Simon H. Chandler Software Consultant.