Browse Source

Squash a couple memory leaks.

tags/v0.3
Ben Kurtovic 10 years ago
parent
commit
0d934f8ad1
1 changed files with 12 additions and 2 deletions
  1. +12
    -2
      mwparserfromhell/parser/tokenizer.c

+ 12
- 2
mwparserfromhell/parser/tokenizer.c View File

@@ -1646,11 +1646,13 @@ static int Tokenizer_handle_invalid_tag_start(Tokenizer* self)
}
if (!IS_SINGLE_ONLY(name))
FAIL_ROUTE(0);
Py_DECREF(name);
break;
}
Textbuffer_write(&buf, this);
pos++;
}
Textbuffer_dealloc(buf);
if (!BAD_ROUTE) {
tag = Tokenizer_really_parse_tag(self);
if (!tag)
@@ -1664,7 +1666,12 @@ static int Tokenizer_handle_invalid_tag_start(Tokenizer* self)
// Set invalid=True flag of TagOpenOpen
if (PyObject_SetAttrString(PyList_GET_ITEM(tag, 0), "invalid", Py_True))
return -1;
return Tokenizer_emit_all(self, tag);
if (Tokenizer_emit_all(self, tag)) {
Py_DECREF(tag);
return -1;
}
Py_DECREF(tag);
return 0;
}

/*
@@ -1685,7 +1692,10 @@ static int Tokenizer_parse_tag(Tokenizer* self)
if (!tag) {
return -1;
}
Tokenizer_emit_all(self, tag);
if (Tokenizer_emit_all(self, tag)) {
Py_DECREF(tag);
return -1;
}
Py_DECREF(tag);
return 0;
}


Loading…
Cancel
Save