functions if a Python exception was raised
This commit is contained in:
parent
3fd8cbd5e4
commit
9e09c26e8a
|
@ -402,6 +402,10 @@ static void
|
||||||
my_CharacterDataHandler(void *userData, const XML_Char *data, int len)
|
my_CharacterDataHandler(void *userData, const XML_Char *data, int len)
|
||||||
{
|
{
|
||||||
xmlparseobject *self = (xmlparseobject *) userData;
|
xmlparseobject *self = (xmlparseobject *) userData;
|
||||||
|
|
||||||
|
if (PyErr_Occurred())
|
||||||
|
return;
|
||||||
|
|
||||||
if (self->buffer == NULL)
|
if (self->buffer == NULL)
|
||||||
call_character_handler(self, data, len);
|
call_character_handler(self, data, len);
|
||||||
else {
|
else {
|
||||||
|
@ -436,6 +440,9 @@ my_StartElementHandler(void *userData,
|
||||||
PyObject *container, *rv, *args;
|
PyObject *container, *rv, *args;
|
||||||
int i, max;
|
int i, max;
|
||||||
|
|
||||||
|
if (PyErr_Occurred())
|
||||||
|
return;
|
||||||
|
|
||||||
if (flush_character_buffer(self) < 0)
|
if (flush_character_buffer(self) < 0)
|
||||||
return;
|
return;
|
||||||
/* Set max to the number of slots filled in atts[]; max/2 is
|
/* Set max to the number of slots filled in atts[]; max/2 is
|
||||||
|
@ -519,6 +526,8 @@ my_##NAME##Handler PARAMS {\
|
||||||
INIT \
|
INIT \
|
||||||
\
|
\
|
||||||
if (have_handler(self, NAME)) { \
|
if (have_handler(self, NAME)) { \
|
||||||
|
if (PyErr_Occurred()) \
|
||||||
|
return RETURN; \
|
||||||
if (flush_character_buffer(self) < 0) \
|
if (flush_character_buffer(self) < 0) \
|
||||||
return RETURN; \
|
return RETURN; \
|
||||||
args = Py_BuildValue PARAM_FORMAT ;\
|
args = Py_BuildValue PARAM_FORMAT ;\
|
||||||
|
@ -633,6 +642,9 @@ my_ElementDeclHandler(void *userData,
|
||||||
PyObject *rv = NULL;
|
PyObject *rv = NULL;
|
||||||
PyObject *modelobj, *nameobj;
|
PyObject *modelobj, *nameobj;
|
||||||
|
|
||||||
|
if (PyErr_Occurred())
|
||||||
|
return;
|
||||||
|
|
||||||
if (flush_character_buffer(self) < 0)
|
if (flush_character_buffer(self) < 0)
|
||||||
goto finally;
|
goto finally;
|
||||||
modelobj = conv_content_model(model, (conv_string_to_unicode));
|
modelobj = conv_content_model(model, (conv_string_to_unicode));
|
||||||
|
@ -1125,6 +1137,9 @@ PyUnknownEncodingHandler(void *encodingHandlerData,
|
||||||
void *data;
|
void *data;
|
||||||
unsigned int kind;
|
unsigned int kind;
|
||||||
|
|
||||||
|
if (PyErr_Occurred())
|
||||||
|
return XML_STATUS_ERROR;
|
||||||
|
|
||||||
if (template_buffer[1] == 0) {
|
if (template_buffer[1] == 0) {
|
||||||
for (i = 0; i < 256; i++)
|
for (i = 0; i < 256; i++)
|
||||||
template_buffer[i] = i;
|
template_buffer[i] = i;
|
||||||
|
|
Loading…
Reference in New Issue