- m_pProjView->GetDocument()->removeReconstructor (this);
- ImageFileDocument* pReconDoc = theApp->newImageDoc();
- if (! pReconDoc) {
- sys_error (ERR_SEVERE, "Unable to create image file");
- return;
- }
-
- ImageFile* pImageFile = getImageFile();
- pReconDoc->setImageFile (pImageFile);
- if (theApp->getAskDeleteNewDocs())
- pReconDoc->Modify (true);
- pReconDoc->UpdateAllViews (m_pProjView);
- if (ImageFileView* rasterView = pReconDoc->getView()) {
- rasterView->OnUpdate (rasterView, NULL);
- rasterView->getFrame()->SetFocus();
- rasterView->getFrame()->Show(true);
- }
- *theApp->getLog() << m_strLabel << "\n";
- pImageFile->labelAdd (m_pProjView->GetDocument()->getProjections().getLabel());
- pImageFile->labelAdd (m_strLabel.c_str(), m_pTimer->timerEnd());
- delete m_pTimer;
-
- wxIdleEvent event;
- theApp->OnIdle(event);
- m_bDone = true;
- theApp->getBackgroundManager()->taskDone (this);
- // delete this;
+ m_pProjView->GetDocument()->removeReconstructor (this);
+ ImageFileDocument* pReconDoc = theApp->newImageDoc();
+ if (! pReconDoc) {
+ sys_error (ERR_SEVERE, "Unable to create image file");
+ doneSection.Leave();
+ return;
+ }
+
+ for (int i = 0; i < m_iNumThreads; i++) {
+ delete m_vecpReconstructor[i];
+ m_vecpReconstructor[i] = NULL;
+ }
+
+ ImageFile* pImageFile = getImageFile();
+ pReconDoc->setImageFile (pImageFile);
+ if (theApp->getAskDeleteNewDocs())
+ pReconDoc->Modify (true);
+ pReconDoc->UpdateAllViews (m_pProjView);
+ if (ImageFileView* rasterView = pReconDoc->getView()) {
+ rasterView->OnUpdate (rasterView, NULL);
+ rasterView->getFrame()->SetFocus();
+ rasterView->getFrame()->Show(true);
+ }
+ *theApp->getLog() << m_strLabel << "\n";
+ pImageFile->labelAdd (m_pProjView->GetDocument()->getProjections().getLabel());
+ pImageFile->labelAdd (m_strLabel.c_str(), m_pTimer->timerEnd());
+
+ doneSection.Leave();
+ cleanUp();