Ticket #1783: streamdata_leak_fix.2.diff
File streamdata_leak_fix.2.diff, 2.0 KB (added by , 19 years ago) |
---|
-
libs/libmythtv/dtvsignalmonitor.cpp
old new void DTVSignalMonitor::SetDVBService(uin 222 222 223 223 void DTVSignalMonitor::SetStreamData(MPEGStreamData *data) 224 224 { 225 if (stream_data)226 stream_data->RemoveMPEGListener(this);227 228 225 ATSCStreamData *atsc = GetATSCStreamData(); 229 226 DVBStreamData *dvb = GetDVBStreamData(); 230 227 if (atsc) … … void DTVSignalMonitor::SetStreamData(MPE 235 232 if (dvb) 236 233 dvb->RemoveDVBMainListener(this); 237 234 235 if (stream_data) 236 { 237 stream_data->RemoveMPEGListener(this); 238 if (!stream_data->HasMPEGListener()) 239 delete stream_data; 240 } 241 238 242 stream_data = data; 239 243 if (!data) 240 244 return; -
libs/libmythtv/mpeg/mpegstreamdata.cpp
old new void MPEGStreamData::RemoveMPEGListener( 1131 1131 } 1132 1132 } 1133 1133 1134 bool MPEGStreamData::HasMPEGListener() 1135 { 1136 QMutexLocker locker(&_listener_lock); 1137 1138 if (_mpeg_listeners.size()) 1139 return true; 1140 return false; 1141 } 1142 1134 1143 void MPEGStreamData::AddMPEGSPListener(MPEGSingleProgramStreamListener *val) 1135 1144 { 1136 1145 QMutexLocker locker(&_listener_lock); -
libs/libmythtv/mpeg/mpegstreamdata.h
old new class MPEGStreamData : public EITSource 157 157 // "signals" 158 158 void AddMPEGListener(MPEGStreamListener*); 159 159 void RemoveMPEGListener(MPEGStreamListener*); 160 bool HasMPEGListener(); 160 161 void UpdatePAT(const ProgramAssociationTable*); 161 162 void UpdateCAT(const ConditionalAccessTable*); 162 163 void UpdatePMT(uint program_num, const ProgramMapTable*);