| @@ -1005,12 +1005,13 @@ static int | |||||
| Tokenizer_handle_free_link_text(Tokenizer* self, int* parens, | Tokenizer_handle_free_link_text(Tokenizer* self, int* parens, | ||||
| Textbuffer** tail, Py_UNICODE this) | Textbuffer** tail, Py_UNICODE this) | ||||
| { | { | ||||
| #define PUSH_TAIL_BUFFER(tail, error) \ | |||||
| if ((tail)->size || (tail)->next) { \ | |||||
| Tokenizer_emit_textbuffer(self, tail, 0); \ | |||||
| tail = Textbuffer_new(); \ | |||||
| if (!(tail)) \ | |||||
| return error; \ | |||||
| #define PUSH_TAIL_BUFFER(tail, error) \ | |||||
| if ((tail)->size || (tail)->next) { \ | |||||
| if (Tokenizer_emit_textbuffer(self, tail, 0)) \ | |||||
| return error; \ | |||||
| tail = Textbuffer_new(); \ | |||||
| if (!(tail)) \ | |||||
| return error; \ | |||||
| } | } | ||||
| if (this == *"(" && !(*parens)) { | if (this == *"(" && !(*parens)) { | ||||
| @@ -1172,6 +1173,7 @@ static int Tokenizer_parse_external_link(Tokenizer* self, int brackets) | |||||
| if (!brackets) { | if (!brackets) { | ||||
| if (Tokenizer_remove_uri_scheme_from_textbuffer(self, link)) { | if (Tokenizer_remove_uri_scheme_from_textbuffer(self, link)) { | ||||
| Textbuffer_dealloc(extra); | Textbuffer_dealloc(extra); | ||||
| Py_DECREF(link); | |||||
| return -1; | return -1; | ||||
| } | } | ||||
| } | } | ||||
| @@ -1199,6 +1201,7 @@ static int Tokenizer_parse_external_link(Tokenizer* self, int brackets) | |||||
| } | } | ||||
| if (extra->size || extra->next) | if (extra->size || extra->next) | ||||
| return Tokenizer_emit_textbuffer(self, extra, 0); | return Tokenizer_emit_textbuffer(self, extra, 0); | ||||
| Textbuffer_dealloc(extra); | |||||
| return 0; | return 0; | ||||
| } | } | ||||