test_libFLAC++: Fix memory leaks

Memory leaks found using `cppcheck`.
This commit is contained in:
Erik de Castro Lopo 2016-05-08 17:28:56 +10:00
parent 94a61241b0
commit bbf1e3eaef

View File

@ -921,17 +921,25 @@ static bool test_level_1_()
printf("creating PADDING block\n"); printf("creating PADDING block\n");
if(0 == (padding = new FLAC::Metadata::Padding())) if(0 == (padding = new FLAC::Metadata::Padding())) {
delete app;
return die_("new FLAC::Metadata::Padding()"); return die_("new FLAC::Metadata::Padding()");
}
padding->set_length(20); padding->set_length(20);
FLAC::Metadata::SimpleIterator iterator; FLAC::Metadata::SimpleIterator iterator;
if(!iterator.is_valid()) if(!iterator.is_valid()) {
delete app;
delete padding;
return die_("iterator.is_valid() returned false"); return die_("iterator.is_valid() returned false");
}
if(!iterator.init(flacfilename(/*is_ogg=*/false), /*read_only=*/false, /*preserve_file_stats=*/false)) if(!iterator.init(flacfilename(/*is_ogg=*/false), /*read_only=*/false, /*preserve_file_stats=*/false)) {
delete app;
delete padding;
return die_("iterator.init() returned false"); return die_("iterator.init() returned false");
}
our_current_position = 0; our_current_position = 0;
printf("is writable = %u\n", (unsigned)iterator.is_writable()); printf("is writable = %u\n", (unsigned)iterator.is_writable());
@ -939,17 +947,26 @@ static bool test_level_1_()
printf("[S]VP\ttry to write over STREAMINFO block...\n"); printf("[S]VP\ttry to write over STREAMINFO block...\n");
if(!iterator.set_block(app, false)) if(!iterator.set_block(app, false))
printf("\titerator.set_block() returned false like it should\n"); printf("\titerator.set_block() returned false like it should\n");
else else {
delete app;
delete padding;
return die_("iterator.set_block() returned true but shouldn't have"); return die_("iterator.set_block() returned true but shouldn't have");
}
printf("[S]VP\tnext\n"); printf("[S]VP\tnext\n");
if(!iterator.next()) if(!iterator.next()) {
delete app;
delete padding;
return die_("iterator ended early\n"); return die_("iterator ended early\n");
}
our_current_position++; our_current_position++;
printf("S[V]P\tnext\n"); printf("S[V]P\tnext\n");
if(!iterator.next()) if(!iterator.next()) {
delete app;
delete padding;
return die_("iterator ended early\n"); return die_("iterator ended early\n");
}
our_current_position++; our_current_position++;
printf("SV[P]\tinsert PADDING after, don't expand into padding\n"); printf("SV[P]\tinsert PADDING after, don't expand into padding\n");