I'm running Xerces 2.2.0 (from HP's VMS freeware site) on OpenVMS 7.3, using C++ V6.3-020.
I can create an instance of the XercesDOMParser, manipulate it, (parse, get documents, find nodes, add them, etc) delete it, rinse, repeat, etc, as often as I want, as long as there's only one instance at any given time within a process. Creating two or more instance of the parser at the same time within one process causes all sorts of grief. Specifically, when I create the second instance, somewhere something overwrites memory, and I get unusually unpredictable results, like member variables in unrelated classes being overwritten, etc. Seems it's allocating memory that's already been allocated to other variables and classes. For example, an integer member variable of an unrelated class gets changed from 0 to 522342, and later on to something else. Changing the value of the integer causes access violations in the next Xerces call. As best as I can tell, this behaviour occurs somewhere within the constructor of the XercesDOMParser, but I can't for the life me figure out why or where. I'm by no means a VMS expert, but those who are also cannot figure out where or why. Unfortunately this behaviour occurs only on VMS. Creating multiple simultaneous instances on HPUX and Windows works fine. Code looks as follows (with error checking taken out): //constructor CXml::CXml() { XMLPlatformUtils::Initialize(); this->m_parser = XercesDOMParser; //the offending line, only on the second instance. //set various options } //destructor CXml::~CXml() { delete this->m_parser; XMLPlatformUtils::Terminate(); } At this point I'm ready to blame the compiler... except that I've got 15K+ lines of code that run just fine. Any ideas? cheers mike --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]