Fix memory leaks

This commit is contained in:
Max Brunsfeld 2014-06-09 13:02:39 -07:00
parent 9bc7d51074
commit 12331d66f5
7 changed files with 24 additions and 14 deletions

View file

@ -89,6 +89,8 @@ static vector<string> list_directory(string dir_name) {
if (name != "." && name != "..")
result.push_back(dir_name + "/" + name);
}
closedir(dir);
return result;
}

View file

@ -21,11 +21,6 @@ static int spy_seek(void *data, size_t position) {
return 0;
}
static void spy_release(void *data) {
SpyReader *reader = static_cast<SpyReader *>(data);
delete reader;
}
SpyReader::SpyReader(string content, size_t chunk_size) :
content(content),
position(0),
@ -34,5 +29,5 @@ SpyReader::SpyReader(string content, size_t chunk_size) :
this,
spy_read,
spy_seek,
spy_release,
nullptr,
}) {}

View file

@ -19,12 +19,12 @@ describe("Languages", [&]() {
ts_document_free(doc);
});
auto run_tests_for_language = [&](string language, ts_parser parser) {
auto run_tests_for_language = [&](string language, ts_parser (parser_constructor)()) {
describe(language.c_str(), [&]() {
before_each([&]() {
ts_document_set_parser(doc, parser);
ts_document_set_parser(doc, parser_constructor());
});
for (auto &entry : test_entries_for_language(language)) {
it(entry.description.c_str(), [&]() {
ts_document_set_input_string(doc, entry.input.c_str());
@ -34,10 +34,10 @@ describe("Languages", [&]() {
});
};
run_tests_for_language("json", ts_parser_json());
run_tests_for_language("arithmetic", ts_parser_arithmetic());
run_tests_for_language("javascript", ts_parser_javascript());
run_tests_for_language("golang", ts_parser_golang());
run_tests_for_language("json", ts_parser_json);
run_tests_for_language("arithmetic", ts_parser_arithmetic);
run_tests_for_language("javascript", ts_parser_javascript);
run_tests_for_language("golang", ts_parser_golang);
});
END_TEST