comparison main/main.cpp @ 332:b168df820681

* Fix crash on exit on win32. This was caused by incorrectly using fftw_free() to free the string returned from fftw_export_wisdom_to_string(), instead of plain free(). * Various debug artifacts related to tracking down the above
author Chris Cannam
date Fri, 14 Aug 2009 14:01:09 +0000
parents 067a57de45e2
children 3bb7eef5d45c
comparison
equal deleted inserted replaced
331:067a57de45e2 332:b168df820681
429 int rv = application.exec(); 429 int rv = application.exec();
430 430
431 gui->hide(); 431 gui->hide();
432 432
433 cleanupMutex.lock(); 433 cleanupMutex.lock();
434
434 TransformFactory::deleteInstance(); 435 TransformFactory::deleteInstance();
435 TempDirectory::getInstance()->cleanup(); 436 TempDirectory::getInstance()->cleanup();
436
437 application.releaseMainWindow(); 437 application.releaseMainWindow();
438 438
439 #ifdef HAVE_FFTW3F 439 #ifdef HAVE_FFTW3F
440 settings.beginGroup("FFTWisdom"); 440 settings.beginGroup("FFTWisdom");
441 char *cwisdom = fftwf_export_wisdom_to_string(); 441 char *cwisdom = fftwf_export_wisdom_to_string();
442 if (cwisdom) { 442 if (cwisdom) {
443 settings.setValue("wisdom", cwisdom); 443 settings.setValue("wisdom", cwisdom);
444 fftwf_free(cwisdom); 444 free(cwisdom);
445 } 445 }
446 #ifdef HAVE_FFTW3 446 #ifdef HAVE_FFTW3
447 cwisdom = fftw_export_wisdom_to_string(); 447 cwisdom = fftw_export_wisdom_to_string();
448 if (cwisdom) { 448 if (cwisdom) {
449 settings.setValue("wisdom_d", cwisdom); 449 settings.setValue("wisdom_d", cwisdom);
450 fftw_free(cwisdom); 450 free(cwisdom);
451 } 451 }
452 #endif 452 #endif
453 settings.endGroup(); 453 settings.endGroup();
454 #endif 454 #endif
455 455