| @@ -33,15 +33,15 @@ Tokenizer_new(PyTypeObject* type, PyObject* args, PyObject* kwds) | |||||
| static struct Textbuffer* | static struct Textbuffer* | ||||
| Textbuffer_new(void) | Textbuffer_new(void) | ||||
| { | { | ||||
| struct Textbuffer* buffer = malloc(sizeof(struct Textbuffer)); | |||||
| struct Textbuffer* buffer = PyObject_Malloc(sizeof(struct Textbuffer)); | |||||
| if (!buffer) { | if (!buffer) { | ||||
| PyErr_NoMemory(); | PyErr_NoMemory(); | ||||
| return NULL; | return NULL; | ||||
| } | } | ||||
| buffer->size = 0; | buffer->size = 0; | ||||
| buffer->data = malloc(sizeof(Py_UNICODE) * TEXTBUFFER_BLOCKSIZE); | |||||
| buffer->data = PyObject_Malloc(sizeof(Py_UNICODE) * TEXTBUFFER_BLOCKSIZE); | |||||
| if (!buffer->data) { | if (!buffer->data) { | ||||
| free(buffer); | |||||
| PyObject_Free(buffer); | |||||
| PyErr_NoMemory(); | PyErr_NoMemory(); | ||||
| return NULL; | return NULL; | ||||
| } | } | ||||
| @@ -58,7 +58,7 @@ Tokenizer_dealloc(Tokenizer* self) | |||||
| Py_DECREF(this->stack); | Py_DECREF(this->stack); | ||||
| Textbuffer_dealloc(this->textbuffer); | Textbuffer_dealloc(this->textbuffer); | ||||
| next = this->next; | next = this->next; | ||||
| free(this); | |||||
| PyObject_Free(this); | |||||
| this = next; | this = next; | ||||
| } | } | ||||
| self->ob_type->tp_free((PyObject*) self); | self->ob_type->tp_free((PyObject*) self); | ||||
| @@ -69,9 +69,9 @@ Textbuffer_dealloc(struct Textbuffer* this) | |||||
| { | { | ||||
| struct Textbuffer* next; | struct Textbuffer* next; | ||||
| while (this) { | while (this) { | ||||
| free(this->data); | |||||
| PyObject_Free(this->data); | |||||
| next = this->next; | next = this->next; | ||||
| free(this); | |||||
| PyObject_Free(this); | |||||
| this = next; | this = next; | ||||
| } | } | ||||
| } | } | ||||
| @@ -98,7 +98,7 @@ Tokenizer_init(Tokenizer* self, PyObject* args, PyObject* kwds) | |||||
| static int | static int | ||||
| Tokenizer_push(Tokenizer* self, int context) | Tokenizer_push(Tokenizer* self, int context) | ||||
| { | { | ||||
| struct Stack* top = malloc(sizeof(struct Stack)); | |||||
| struct Stack* top = PyObject_Malloc(sizeof(struct Stack)); | |||||
| if (!top) { | if (!top) { | ||||
| PyErr_NoMemory(); | PyErr_NoMemory(); | ||||
| return -1; | return -1; | ||||
| @@ -180,7 +180,7 @@ Tokenizer_delete_top_of_stack(Tokenizer* self) | |||||
| Py_DECREF(top->stack); | Py_DECREF(top->stack); | ||||
| Textbuffer_dealloc(top->textbuffer); | Textbuffer_dealloc(top->textbuffer); | ||||
| self->topstack = top->next; | self->topstack = top->next; | ||||
| free(top); | |||||
| PyObject_Free(top); | |||||
| } | } | ||||
| /* | /* | ||||
| @@ -607,6 +607,7 @@ Tokenizer_verify_safe(Tokenizer* self, const char* unsafes[]) | |||||
| Py_DECREF(textlist); | Py_DECREF(textlist); | ||||
| return -1; | return -1; | ||||
| } | } | ||||
| Py_DECREF(textdata); | |||||
| if (PyList_Append(textlist, textdata)) { | if (PyList_Append(textlist, textdata)) { | ||||
| Py_DECREF(textlist); | Py_DECREF(textlist); | ||||
| Py_DECREF(textdata); | Py_DECREF(textdata); | ||||
| @@ -943,7 +944,7 @@ Tokenizer_parse_heading(Tokenizer* self) | |||||
| PyObject* level = PyInt_FromSsize_t(heading->level); | PyObject* level = PyInt_FromSsize_t(heading->level); | ||||
| if (!level) { | if (!level) { | ||||
| Py_DECREF(heading->title); | Py_DECREF(heading->title); | ||||
| free(heading); | |||||
| PyObject_Free(heading); | |||||
| return -1; | return -1; | ||||
| } | } | ||||
| @@ -951,7 +952,7 @@ Tokenizer_parse_heading(Tokenizer* self) | |||||
| if (!kwargs) { | if (!kwargs) { | ||||
| Py_DECREF(level); | Py_DECREF(level); | ||||
| Py_DECREF(heading->title); | Py_DECREF(heading->title); | ||||
| free(heading); | |||||
| PyObject_Free(heading); | |||||
| return -1; | return -1; | ||||
| } | } | ||||
| PyDict_SetItemString(kwargs, "level", level); | PyDict_SetItemString(kwargs, "level", level); | ||||
| @@ -961,14 +962,14 @@ Tokenizer_parse_heading(Tokenizer* self) | |||||
| Py_DECREF(kwargs); | Py_DECREF(kwargs); | ||||
| if (!token) { | if (!token) { | ||||
| Py_DECREF(heading->title); | Py_DECREF(heading->title); | ||||
| free(heading); | |||||
| PyObject_Free(heading); | |||||
| return -1; | return -1; | ||||
| } | } | ||||
| if (Tokenizer_write(self, token)) { | if (Tokenizer_write(self, token)) { | ||||
| Py_DECREF(token); | Py_DECREF(token); | ||||
| Py_DECREF(heading->title); | Py_DECREF(heading->title); | ||||
| free(heading); | |||||
| PyObject_Free(heading); | |||||
| return -1; | return -1; | ||||
| } | } | ||||
| Py_DECREF(token); | Py_DECREF(token); | ||||
| @@ -980,18 +981,18 @@ Tokenizer_parse_heading(Tokenizer* self) | |||||
| difftext[diff] = *""; | difftext[diff] = *""; | ||||
| if (Tokenizer_write_text_then_stack(self, difftext)) { | if (Tokenizer_write_text_then_stack(self, difftext)) { | ||||
| Py_DECREF(heading->title); | Py_DECREF(heading->title); | ||||
| free(heading); | |||||
| PyObject_Free(heading); | |||||
| return -1; | return -1; | ||||
| } | } | ||||
| } | } | ||||
| if (Tokenizer_write_all(self, heading->title)) { | if (Tokenizer_write_all(self, heading->title)) { | ||||
| Py_DECREF(heading->title); | Py_DECREF(heading->title); | ||||
| free(heading); | |||||
| PyObject_Free(heading); | |||||
| return -1; | return -1; | ||||
| } | } | ||||
| Py_DECREF(heading->title); | Py_DECREF(heading->title); | ||||
| free(heading); | |||||
| PyObject_Free(heading); | |||||
| token = PyObject_CallObject(HeadingEnd, NULL); | token = PyObject_CallObject(HeadingEnd, NULL); | ||||
| if (!token) return -1; | if (!token) return -1; | ||||
| @@ -1045,23 +1046,23 @@ Tokenizer_handle_heading_end(Tokenizer* self) | |||||
| text[best] = *""; | text[best] = *""; | ||||
| if (Tokenizer_write_text_then_stack(self, text)) { | if (Tokenizer_write_text_then_stack(self, text)) { | ||||
| Py_DECREF(after->title); | Py_DECREF(after->title); | ||||
| free(after); | |||||
| PyObject_Free(after); | |||||
| return NULL; | return NULL; | ||||
| } | } | ||||
| if (Tokenizer_write_all(self, after->title)) { | if (Tokenizer_write_all(self, after->title)) { | ||||
| Py_DECREF(after->title); | Py_DECREF(after->title); | ||||
| free(after); | |||||
| PyObject_Free(after); | |||||
| return NULL; | return NULL; | ||||
| } | } | ||||
| Py_DECREF(after->title); | Py_DECREF(after->title); | ||||
| level = after->level; | level = after->level; | ||||
| free(after); | |||||
| PyObject_Free(after); | |||||
| } | } | ||||
| PyObject* stack = Tokenizer_pop(self); | PyObject* stack = Tokenizer_pop(self); | ||||
| if (!stack) return NULL; | if (!stack) return NULL; | ||||
| HeadingData* heading = malloc(sizeof(HeadingData)); | |||||
| HeadingData* heading = PyObject_Malloc(sizeof(HeadingData)); | |||||
| if (!heading) { | if (!heading) { | ||||
| PyErr_NoMemory(); | PyErr_NoMemory(); | ||||
| return NULL; | return NULL; | ||||