[Expat-discuss] 64bit Integers for large files (Expat 2.0)
Karl Waclawek
karl at waclawek.net
Fri Dec 16 17:59:32 CET 2005
This has been proposed recently. As I am not a cross-platform expert,
I suggest a simple solution:
A new conditional define:
#ifdef XML_LARGE_SIZE /* Use large integers for counts and positions. */
typedef long long XML_Index;
typedef unsigned long long XML_Size;
#else
typedef int XML_Index;
typedef unsigned int XML_Size;
#endif /* XML_LARGE_SIZE */
Most compilers will support that, and those that don't can
still use the 32 bit API.
This will change the API like this:
XMLPARSEAPI(XML_Size) XML_GetCurrentLineNumber(XML_Parser parser);
XMLPARSEAPI(XML_Size) XML_GetCurrentColumnNumber(XML_Parser parser);
XMLPARSEAPI(XML_Index) XML_GetCurrentByteIndex(XML_Parser parser);
XMLPARSEAPI(XML_Size) XML_GetCurrentByteCount(XML_Parser parser);
Note: Even if XML_LARGE_SIZE is not defined, the above will change
the return type of XML_GetCurrentLineNumber, XML_GetCurrentColumnNumber
and XML_GetCurrentByteCount from int to uint! Could this be a problem?
What do you think?
I'd like to post a test release (for feedback purposes) soon.
Karl
More information about the Expat-discuss
mailing list