Changeset 1999
- Timestamp:
- 10/10/11 00:10:52 (2 years ago)
- Files:
-
- trunk/libffado/src/debugmodule/debugmodule.cpp (modified) (4 diffs)
- trunk/libffado/src/debugmodule/debugmodule.h (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/libffado/src/debugmodule/debugmodule.cpp
r1763 r1999 84 84 // << endl; 85 85 // } 86 if ( !DebugModuleManager::instance()->unregisterModule( *this ) ) { 86 87 if (m_manager && !m_manager->unregisterModule( *this ) ) { 87 88 cerr << "Could not unregister DebugModule at DebugModuleManager" 88 89 << endl; … … 263 264 DebugModuleManager::~DebugModuleManager() 264 265 { 265 // cleanin up leftover modules 266 for ( DebugModuleVectorIterator it = m_debugModules.begin(); 267 it != m_debugModules.end(); 268 ++it ) 266 // cleaning up leftover modules 267 while (!m_debugModules.empty()) 269 268 { 270 fprintf(stderr,"Cleaning up leftover debug module: %s\n",(*it)->getName().c_str()); 271 m_debugModules.erase( it ); 272 delete *it; 269 DebugModule *mod = m_debugModules.back(); 270 unregisterModule(*mod); 273 271 } 274 272 … … 455 453 } else { 456 454 m_debugModules.push_back( &debugModule ); 455 if (debugModule.m_manager == NULL) 456 debugModule.m_manager = this; 457 457 } 458 458 return true; … … 469 469 if ( *it == &debugModule ) { 470 470 m_debugModules.erase( it ); 471 if (debugModule.m_manager == this) 472 debugModule.m_manager = NULL; 471 473 return true; 472 474 } trunk/libffado/src/debugmodule/debugmodule.h
r1763 r1999 283 283 void hexDumpQuadlets( quadlet_t *data_start, unsigned int length ); 284 284 285 class DebugModuleManager; 286 285 287 class DebugModule { 286 288 public: 289 friend class DebugModuleManager; 290 287 291 enum { 288 292 eDL_Message = DEBUG_LEVEL_MESSAGE, … … 333 337 std::string m_name; 334 338 debug_level_t m_level; 339 DebugModuleManager* m_manager; 335 340 }; 336 341
