Ticket #4666: mythtv_tv_play_deleteLater.diff
File mythtv_tv_play_deleteLater.diff, 3.3 KB (added by , 16 years ago) |
---|
-
libs/libmythtv/tv_play.h
118 118 }; 119 119 120 120 TV(void); 121 ~TV(); 121 ~TV(); // Use deleteLater() instead of delete 122 122 123 123 bool Init(bool createWindow = true); 124 124 … … 225 225 void ToggleMute(void); 226 226 227 227 public slots: 228 void deleteLater(void); 228 229 void HandleOSDClosed(int osdType); 229 230 230 231 protected slots: … … 238 239 void TreeMenuSelected(OSDListTreeType *tree, OSDGenericTree *item); 239 240 240 241 protected: 242 void Teardown(void); 241 243 void doEditSchedule(int editType = kScheduleProgramGuide); 242 244 static void *RecordedShowMenuHandler(void *param); 243 245 static void *ViewScheduledMenuHandler(void *param); -
libs/libmythtv/tv_play.cpp
103 103 { 104 104 VERBOSE(VB_IMPORTANT, "Experienced fatal error:" 105 105 "Failed initializing TV"); 106 delete tv; 106 tv->deleteLater(); 107 tv = NULL; 107 108 return false; 108 109 } 109 110 … … 233 234 234 235 bool allowrerecord = tv->getAllowRerecord(); 235 236 bool deleterecording = tv->getRequestDelete(); 236 237 delete tv; 238 237 238 tv->deleteLater(); 239 tv = NULL; 240 239 241 if (curProgram) 240 242 { 241 243 if (deleterecording) … … 739 741 740 742 TV::~TV(void) 741 743 { 744 Teardown(); 745 } 746 747 void TV::deleteLater(void) 748 { 749 Teardown(); 750 QObject::deleteLater(); 751 } 752 753 void TV::Teardown(void) 754 { 742 755 QMutexLocker locker(&osdlock); // prevent UpdateOSDSignal from continuing. 756 757 if (!runMainLoop) 758 return; 759 743 760 gContext->removeListener(this); 744 761 gContext->removeCurrentLocation(); 745 762 -
programs/mythfrontend/manualbox.cpp
193 193 { 194 194 m_tv->StopEmbeddingOutput(); 195 195 qApp->unlock(); 196 delete m_tv;196 m_tv->deleteLater(); 197 197 qApp->lock(); 198 198 m_tv = NULL; 199 199 } … … 210 210 { 211 211 VERBOSE(VB_IMPORTANT, "Experienced fatal error initialzing " 212 212 "TV class in ManualBox::startPlayer()."); 213 delete m_tv;214 m_tv = 0;213 m_tv->deleteLater(); 214 m_tv = NULL; 215 215 tvstarting = false; 216 216 return; 217 217 } … … 234 234 else 235 235 { 236 236 qApp->unlock(); 237 delete m_tv;237 m_tv->deleteLater(); 238 238 qApp->lock(); 239 239 m_tv = NULL; 240 240 emit dismissWindow(); -
programs/mythtv/main.cpp
273 273 if (!tv->Init()) 274 274 { 275 275 VERBOSE(VB_IMPORTANT, "Fatal Error: Could not initializing TV class."); 276 tv->deleteLater(); 276 277 return TV_EXIT_NO_TV; 277 278 } 278 279 … … 293 294 294 295 TV::StartTV(pginfo, false); 295 296 297 tv->deleteLater(); 298 296 299 if (pginfo) 297 300 delete pginfo; 298 301