From cc117dbb9d925ade41ae3e43ff2292b83b5d9b32 Mon Sep 17 00:00:00 2001 From: Fredrik Lundh Date: Tue, 13 Dec 2005 21:55:36 +0000 Subject: [PATCH] moved magic into structure (mainly to simplify the client code) added missing API hooks --- Include/pyexpat.h | 8 +++++--- Modules/pyexpat.c | 10 +++++----- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/Include/pyexpat.h b/Include/pyexpat.h index d4acb9aa7ee..50ed49f5fc6 100644 --- a/Include/pyexpat.h +++ b/Include/pyexpat.h @@ -7,15 +7,17 @@ struct PyExpat_CAPI { + char* magic; /* set to PyExpat_CAPI_MAGIC */ int size; /* set to sizeof(struct PyExpat_CAPI) */ - int MAJOR_VERSION; /* XXX: use the ExpatVersionInfo instead? */ + int MAJOR_VERSION; int MINOR_VERSION; int MICRO_VERSION; /* pointers to selected expat functions. add new functions at the end, if needed */ const XML_LChar * (*ErrorString)(enum XML_Error code); - int (*GetCurrentColumnNumber)(XML_Parser parser); - int (*GetCurrentLineNumber)(XML_Parser parser); + enum XML_Error (*GetErrorCode)(XML_Parser parser); + int (*GetErrorColumnNumber)(XML_Parser parser); + int (*GetErrorLineNumber)(XML_Parser parser); enum XML_Status (*Parse)( XML_Parser parser, const char *s, int len, int isFinal); XML_Parser (*ParserCreate_MM)( diff --git a/Modules/pyexpat.c b/Modules/pyexpat.c index 2da80c8b816..ca2a850478c 100644 --- a/Modules/pyexpat.c +++ b/Modules/pyexpat.c @@ -2018,12 +2018,14 @@ MODULE_INITFUNC(void) /* initialize pyexpat dispatch table */ capi.size = sizeof(capi); + capi.magic = PyExpat_CAPI_MAGIC; capi.MAJOR_VERSION = XML_MAJOR_VERSION; capi.MINOR_VERSION = XML_MINOR_VERSION; capi.MICRO_VERSION = XML_MICRO_VERSION; capi.ErrorString = XML_ErrorString; - capi.GetCurrentColumnNumber = XML_GetCurrentColumnNumber; - capi.GetCurrentLineNumber = XML_GetCurrentLineNumber; + capi.GetErrorCode = XML_GetErrorCode; + capi.GetErrorColumnNumber = XML_GetErrorColumnNumber; + capi.GetErrorLineNumber = XML_GetErrorLineNumber; capi.Parse = XML_Parse; capi.ParserCreate_MM = XML_ParserCreate_MM; capi.ParserFree = XML_ParserFree; @@ -2037,9 +2039,7 @@ MODULE_INITFUNC(void) capi.SetUserData = XML_SetUserData; /* export as cobject */ - capi_object = PyCObject_FromVoidPtrAndDesc( - &capi, PyExpat_CAPI_MAGIC, NULL - ); + capi_object = PyCObject_FromVoidPtr(&capi, NULL); if (capi_object) PyModule_AddObject(m, "expat_CAPI", capi_object); }