From: Michal Sojka Date: Mon, 1 Oct 2018 23:01:55 +0000 (+0200) Subject: Do not destroy fftw plans if they were not created X-Git-Url: https://rtime.felk.cvut.cz/gitweb/hercules2020/kcf.git/commitdiff_plain/9fbb129aad0ec507c029893d6e470562847e35f2 Do not destroy fftw plans if they were not created Otherwise we get a segfault. --- diff --git a/src/fft_fftw.cpp b/src/fft_fftw.cpp index aa1ba97..1d26269 100644 --- a/src/fft_fftw.cpp +++ b/src/fft_fftw.cpp @@ -134,13 +134,13 @@ void Fftw::inverse(ComplexMat &complex_input, MatScales &real_result) Fftw::~Fftw() { - fftwf_destroy_plan(plan_f); - fftwf_destroy_plan(plan_fw); - fftwf_destroy_plan(plan_i_1ch); + if (plan_f) fftwf_destroy_plan(plan_f); + if (plan_fw) fftwf_destroy_plan(plan_fw); + if (plan_i_1ch) fftwf_destroy_plan(plan_i_1ch); #ifdef BIG_BATCH - fftwf_destroy_plan(plan_f_all_scales); - fftwf_destroy_plan(plan_fw_all_scales); - fftwf_destroy_plan(plan_i_all_scales); + if (plan_f_all_scales) fftwf_destroy_plan(plan_f_all_scales); + if (plan_fw_all_scales) fftwf_destroy_plan(plan_fw_all_scales); + if (plan_i_all_scales) fftwf_destroy_plan(plan_i_all_scales); #endif } diff --git a/src/fft_fftw.h b/src/fft_fftw.h index 47bc7ad..7274f51 100644 --- a/src/fft_fftw.h +++ b/src/fft_fftw.h @@ -26,9 +26,9 @@ protected: private: cv::Mat m_window; - fftwf_plan plan_f, plan_fw, plan_i_1ch; + fftwf_plan plan_f = 0, plan_fw = 0, plan_i_1ch = 0; #ifdef BIG_BATCH - fftwf_plan plan_f_all_scales, plan_fw_all_scales, plan_i_all_scales; + fftwf_plan plan_f_all_scales = 0, plan_fw_all_scales = 0, plan_i_all_scales = 0; #endif };