AddGenericFrame: fix memory leak on failure
quiets a static analysis warning Change-Id: I9fac3c495beefb0a76d0476573b95700662e082c
This commit is contained in:
parent
da131dd350
commit
a98f4950f6
@ -3517,10 +3517,14 @@ bool Segment::AddGenericFrame(const Frame* frame) {
|
|||||||
if (has_video_ && tracks_.TrackIsAudio(frame->track_number()) &&
|
if (has_video_ && tracks_.TrackIsAudio(frame->track_number()) &&
|
||||||
!force_new_cluster_) {
|
!force_new_cluster_) {
|
||||||
Frame* const new_frame = new (std::nothrow) Frame();
|
Frame* const new_frame = new (std::nothrow) Frame();
|
||||||
if (!new_frame || !new_frame->CopyFrom(*frame))
|
if (!new_frame || !new_frame->CopyFrom(*frame)) {
|
||||||
|
delete new_frame;
|
||||||
return false;
|
return false;
|
||||||
if (!QueueFrame(new_frame))
|
}
|
||||||
|
if (!QueueFrame(new_frame)) {
|
||||||
|
delete new_frame;
|
||||||
return false;
|
return false;
|
||||||
|
}
|
||||||
track_frames_written_[frame->track_number() - 1]++;
|
track_frames_written_[frame->track_number() - 1]++;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -3543,8 +3547,10 @@ bool Segment::AddGenericFrame(const Frame* frame) {
|
|||||||
if (!frame->CanBeSimpleBlock() && !frame->is_key() &&
|
if (!frame->CanBeSimpleBlock() && !frame->is_key() &&
|
||||||
!frame->reference_block_timestamp_set()) {
|
!frame->reference_block_timestamp_set()) {
|
||||||
Frame* const new_frame = new (std::nothrow) Frame();
|
Frame* const new_frame = new (std::nothrow) Frame();
|
||||||
if (!new_frame->CopyFrom(*frame))
|
if (!new_frame || !new_frame->CopyFrom(*frame)) {
|
||||||
|
delete new_frame;
|
||||||
return false;
|
return false;
|
||||||
|
}
|
||||||
new_frame->set_reference_block_timestamp(
|
new_frame->set_reference_block_timestamp(
|
||||||
last_track_timestamp_[frame->track_number() - 1]);
|
last_track_timestamp_[frame->track_number() - 1]);
|
||||||
frame = new_frame;
|
frame = new_frame;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user