From 794c1b8c9265f208d52129a698084c1d8d69b865 Mon Sep 17 00:00:00 2001 From: Lukas Prediger Date: Mon, 24 Jan 2022 20:34:37 +0200 Subject: [PATCH] Ripper: Ensuring that GetProgress does never divide by zero Also removed superfluous null check in RipCDDialog --- src/ripper/ripcddialog.cpp | 4 ---- src/ripper/ripper.cpp | 5 ++++- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/ripper/ripcddialog.cpp b/src/ripper/ripcddialog.cpp index e7cfbdfe0..4c3be4968 100644 --- a/src/ripper/ripcddialog.cpp +++ b/src/ripper/ripcddialog.cpp @@ -213,10 +213,6 @@ void RipCDDialog::ClickedRipButton() { // create and connect Ripper instance for this task Ripper* ripper = new Ripper(cdda_device_->song_count(), this); - if (!ripper) { - qLog(Error) << "Could not create Ripper instance"; - return; - } connect(cancel_button_, SIGNAL(clicked()), ripper, SLOT(Cancel())); diff --git a/src/ripper/ripper.cpp b/src/ripper/ripper.cpp index b07ffa99a..d47c0c657 100644 --- a/src/ripper/ripper.cpp +++ b/src/ripper/ripper.cpp @@ -154,11 +154,14 @@ void Ripper::Rip() { } float Ripper::GetProgress() const { + int added_tracks = AddedTracks(); + if (added_tracks == 0) return 1.0f; + float progress = finished_success_ + finished_failed_; QList current_job_progress_ = transcoder_->GetProgress().values(); progress += std::accumulate(current_job_progress_.begin(), current_job_progress_.end(), 0.0f); - progress /= AddedTracks(); + progress /= added_tracks; qLog(Debug) << "Progress: " << progress; return progress;