diff --git a/src/xercesc/util/XMLStringTokenizer.cpp b/src/xercesc/util/XMLStringTokenizer.cpp index 557fd3fb46161b8b6cac366bf157bc4c0279378d..30ab4da4fd12fb0ada5ffdc21643fe50bab4f1ce 100644 --- a/src/xercesc/util/XMLStringTokenizer.cpp +++ b/src/xercesc/util/XMLStringTokenizer.cpp @@ -47,7 +47,7 @@ XMLStringTokenizer::XMLStringTokenizer( const XMLCh* const srcStr : fOffset(0) , fStringLen(XMLString::stringLen(srcStr)) , fString(XMLString::replicate(srcStr, manager)) - , fDelimeters(XMLString::replicate(fgDelimeters, manager)) + , fDelimeters(fgDelimeters) , fTokens(0) , fMemoryManager(manager) { @@ -103,6 +103,18 @@ XMLStringTokenizer::~XMLStringTokenizer() cleanUp(); } +// --------------------------------------------------------------------------- +// XMLStringTokenizer: CleanUp methods +// --------------------------------------------------------------------------- +void XMLStringTokenizer::cleanUp() { + + fMemoryManager->deallocate(fString);//delete [] fString; + if (fDelimeters != fgDelimeters) { + fMemoryManager->deallocate((void*)fDelimeters);//delete [] fDelimeters; + } + delete fTokens; +} + // --------------------------------------------------------------------------- // XMLStringTokenizer: Management methods diff --git a/src/xercesc/util/XMLStringTokenizer.hpp b/src/xercesc/util/XMLStringTokenizer.hpp index 67ed0c1e2fd46b931b706fb140dbf24273cbd595..89e8e0462bbbd0aed80979c21d35291855f37a31 100644 --- a/src/xercesc/util/XMLStringTokenizer.hpp +++ b/src/xercesc/util/XMLStringTokenizer.hpp @@ -160,22 +160,11 @@ private: int fOffset; int fStringLen; XMLCh* fString; - XMLCh* fDelimeters; + const XMLCh* fDelimeters; RefArrayVectorOf<XMLCh>* fTokens; MemoryManager* fMemoryManager; }; - -// --------------------------------------------------------------------------- -// XMLStringTokenizer: CleanUp methods -// --------------------------------------------------------------------------- -inline void XMLStringTokenizer::cleanUp() { - - fMemoryManager->deallocate(fString);//delete [] fString; - fMemoryManager->deallocate(fDelimeters);//delete [] fDelimeters; - delete fTokens; -} - // --------------------------------------------------------------------------- // XMLStringTokenizer: Helper methods // ---------------------------------------------------------------------------