From fcb9e4e365ad9b9babc6a3d40009147990476189 Mon Sep 17 00:00:00 2001 From: BusinessmanProgrammerSteve Date: Sat, 4 Sep 2010 02:56:53 +0000 Subject: [PATCH] Restore some r10644 changes: ReplaceProcessedTracks() calls on early returns, documentation at top. These should prevent a memory leak. --- src/effects/TruncSilence.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/effects/TruncSilence.cpp b/src/effects/TruncSilence.cpp index 5f8e45442..e27108b1d 100644 --- a/src/effects/TruncSilence.cpp +++ b/src/effects/TruncSilence.cpp @@ -10,7 +10,8 @@ *******************************************************************//** \class EffectTruncSilence -\brief An Effect. +\brief Truncate Silence automatically reduces the length of passages + where the volume is below a set threshold level. \todo mBlendFrameCount only retrieved from prefs ... not using dialog Only way to change (for windows) is thru registry @@ -467,7 +468,7 @@ bool EffectTruncSilence::Process() double truncDbSilenceThreshold = Enums::Db2Signal[mTruncDbChoiceIndex]; // Master list of silent regions; it is responsible for deleting them. - // This list should always be kept in order + // This list should always be kept in order. RegionList silences; silences.DeleteContents(true); @@ -582,6 +583,7 @@ bool EffectTruncSilence::Process() // Buffer has been freed, so we're OK to return if cancelled if (cancelled) { + ReplaceProcessedTracks(false); return false; } @@ -614,7 +616,10 @@ bool EffectTruncSilence::Process() // Progress dialog and cancellation; at this point it's safe to return if (TotalProgress(detectFrac + (1 - detectFrac) * whichReg / (double)silences.size())) + { + ReplaceProcessedTracks(false); return false; + } // Intersection may create regions smaller than allowed; ignore them if (r->end - r->start < mTruncInitialAllowedSilentMs / 1000.0)