"XMLAttr.cpp: fPrefix is allocated & never destroyed."
If this was true at one point, it isn't anymore. I believe that it was
fixed for the 1.0.1 release, but it is definitely fixed in the newest code.
"XMLScanner2.cpp: XMLPlatformUtils::getBasePath() returns a string which is
not destroyed."
These are also already fixed, though the code is now so different that
really a different but related problem was what got fixed.
"PlatformUtils.cpp:
XMLScanner.cpp: gMsgLoader is allocated & never destroyed.
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."
These are all purposefully left allocated. There is no way, other than
making the client code call something, to free these things in a completely
portable way. since we didn't want to place the extra burden of forcing the
client code to catch any exit and call a terminate method, we decided to
let them just be cleaned up naturally in the course of the process dying.
We cannot use any sort of global object destruction to clean them up, and
we didn't want to do the termination call from the client, so we let them
die naturally. We recognize that this is a bit of a pain to people hate to
see anything left hanging at the end when they do a heap dump. But, since
there is no way that we can guarantee the cleanup, we did it this way.
---------------------------------------
Dean Roddey
Software Weenie
IBM Center for Java Technology - Silicon Valley
[EMAIL PROTECTED]