Hello,
working on a C++ project we are trying to parse a very large XML file using
Xerces-C version 3.1.1
We have encountered a problem due to the hard-coded limits defined at line 33
in file src/xercesc/dom/impl/DOMNodeIDMap.cpp :
static const XMLSize_t gPrimes[] = {997, 9973, 99991, 999983, 0 }; // To do -
add a few more.
The parsing of our fails with the following message:
NodeIDMap exceeds largest available size at line: 1321916
We think that the source of the error is the constructor of DOMNodeIDMap (line
49 of the same file).
To solve the issue we have modified line 33 to:
static const XMLSize_t gPrimes[] = {997, 9973, 99991, 999983, 9999991,
99999989, 0 }; // To do - add a few more.
If we understand correctly the hashing mechanism, the only requirement on
gPrimes is to be prime numbers. Is this correct? Do you think this modification
may have other side-effects?
Thank you,
Andrea Dotti