Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/Jajcus/pyxmpp.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
authorJacek Konieczny <jajcus@jajcus.net>2004-05-05 13:13:22 +0400
committerJacek Konieczny <jajcus@jajcus.net>2004-05-05 13:13:22 +0400
commit53b1721c0070fdd50ddfc00c3d56f3b98a2e4a8d (patch)
treebe8821fe8c53b4c81c5ca46f5906b8b36018a2a7 /ext
parent22743ad3ffbaac4b9a43056550c3e7f59097e805 (diff)
- set exception string on memory allocation errors
- fix for 64-bit architectures: second argument for "s#" format in PyArg_ParseTuple function must be "int", not "size_t"
Diffstat (limited to 'ext')
-rw-r--r--ext/xmlextra.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/ext/xmlextra.c b/ext/xmlextra.c
index a1abb6c..e4b5f1b 100644
--- a/ext/xmlextra.c
+++ b/ext/xmlextra.c
@@ -1153,8 +1153,10 @@ char *buf;
if (reader->doc) xmlFreeDoc(reader->doc);
reader->doc=NULL;
buf=PyMem_New(char,len+reader->document_start_len);
- if (buf==NULL)
+ if (buf==NULL) {
+ PyErr_Format(MyError,"Out of memory? Couldn't allocate %d bytes in stream_end()",(int)(len+reader->document_start_len));
return -1;
+ }
memcpy(buf,reader->document_start,reader->document_start_len);
memcpy(buf+reader->document_start_len,reader->buffer,len);
reader->doc=xmlParseMemory(buf,len+reader->document_start_len);
@@ -1180,6 +1182,7 @@ static int append_to_current_stanza(PreparsingReaderObject *reader,int len){
reader->current_stanza_len);
if (reader->current_stanza==NULL) {
preparsing_reader_clear(reader);
+ PyErr_Format(MyError,"Out of memory? Couldn't allocate %d bytes in append_to_current_stanza()",(int)reader->current_stanza_len);
return -1;
}
}
@@ -1232,7 +1235,7 @@ xmlNodePtr stanza;
static PyObject * preparsing_reader_feed(PyObject *self, PyObject *args) {
PreparsingReaderObject *reader=(PreparsingReaderObject *)self;
char *str;
-size_t len;
+int len;
MarkupType mtype;
int depth_change;
@@ -1250,6 +1253,7 @@ int depth_change;
if (reader->buffer==NULL) {
/* out of memory */
preparsing_reader_clear(reader);
+ PyErr_Format(MyError,"Out of memory? Couldn't allocate %d bytes in preparsing_reader_feed()",(int)reader->buffer_len);
return NULL;
}
}