(original) (raw)

changeset: 75699:ada6bfbeceb8 branch: 2.7 user: Gregory P. Smith greg@krypto.org date: Wed Mar 14 18:12:23 2012 -0700 files: Modules/expat/expat.h Modules/pyexpat.c description: Fixes Issue 14234: fix for the previous commit, keep compilation when using --with-system-expat working when the system expat does not have salted hash support. diff -r 04ff6e206b98 -r ada6bfbeceb8 Modules/expat/expat.h --- a/Modules/expat/expat.h Wed Mar 14 15:28:10 2012 -0700 +++ b/Modules/expat/expat.h Wed Mar 14 18:12:23 2012 -0700 @@ -892,6 +892,8 @@ XML_SetHashSalt(XML_Parser parser, unsigned long hash_salt); +#define XML_HAS_SET_HASH_SALT /* Python Only: Defined for pyexpat.c. */ + /* If XML_Parse or XML_ParseBuffer have returned XML_STATUS_ERROR, then XML_GetErrorCode returns information about the error. */ diff -r 04ff6e206b98 -r ada6bfbeceb8 Modules/pyexpat.c --- a/Modules/pyexpat.c Wed Mar 14 15:28:10 2012 -0700 +++ b/Modules/pyexpat.c Wed Mar 14 18:12:23 2012 -0700 @@ -1302,8 +1302,13 @@ else { self->itself = XML_ParserCreate(encoding); } +#if ((XML_MAJOR_VERSION >= 2) && (XML_MINOR_VERSION >= 1)) || defined(XML_HAS_SET_HASH_SALT) + /* This feature was added upstream in libexpat 2.1.0. Our expat copy + * has a backport of this feature where we also define XML_HAS_SET_HASH_SALT + * to indicate that we can still use it. */ XML_SetHashSalt(self->itself, (unsigned long)_Py_HashSecret.prefix); +#endif self->intern = intern; Py_XINCREF(self->intern); #ifdef Py_TPFLAGS_HAVE_GC /greg@krypto.org