Possible Memory leaks

Bug #410841 reported by Bill Egert on 2009-08-08
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Mixxx
Low
Unassigned
1.7
Medium
Sean M. Pappalardo

Bug Description

I haven't bothered to see if any of these are actual problems, but it would probably be a good idea to do it.

Running cppcheck 1.34 against Mixxx 1.7.0 yeilds:

% cppcheck -f -a -q .
[lib/cmetrics/lindriver.cpp:132]: (possible error) Memory leak: pstzUserID
[lib/cmetrics/lindriver.cpp:132]: (possible error) Memory leak: pstzReleaseID
[lib/ladspa/caps/Descriptor.h:92]: (possible error) Memory leak: Descriptor::ranges
[src/bpm/bpmdetector.cpp:131]: (possible error) Memory leak: pSoundSource
[src/bpm/bpmdetector.h:89]: (possible error) Memory leak: BpmDetector::window
[src/configobject.cpp:136]: (possible error) Memory leak: key
[src/configobject.cpp:156]: (possible error) Memory leak: key
[src/dlgbpmtap.cpp:194]: (possible error) Memory leak: scheme
[src/dlgprefbpm.cpp:190]: (possible error) Memory leak: SchemeEdit
[src/dlgprefbpm.cpp:216]: (possible error) Memory leak: SchemeEdit
[src/dlgprefbpm.cpp:208]: (possible error) Memory leak: addScheme
[src/dlgprefbpm.cpp:435]: (possible error) Memory leak: scheme
[src/dlgprefcontrols.h:61]: (possible error) Memory leak: DlgPrefControls::m_pControlRate1
[src/dlgprefcontrols.h:61]: (possible error) Memory leak: DlgPrefControls::m_pControlRate2
[src/dlgprefcontrols.h:61]: (possible error) Memory leak: DlgPrefControls::m_pControlRateRange1
[src/dlgprefcontrols.h:61]: (possible error) Memory leak: DlgPrefControls::m_pControlRateRange2
[src/dlgprefcontrols.h:63]: (possible error) Memory leak: DlgPrefControls::m_pControlRateDir1
[src/dlgprefcontrols.h:63]: (possible error) Memory leak: DlgPrefControls::m_pControlRateDir2
[src/dlgprefcontrols.h:65]: (possible error) Memory leak: DlgPrefControls::m_pControlCueDefault1
[src/dlgprefcontrols.h:65]: (possible error) Memory leak: DlgPrefControls::m_pControlCueDefault2
[src/dlgpreferences.h:78]: (possible error) Memory leak: DlgPreferences::wsound
[src/dlgpreferences.h:80]: (possible error) Memory leak: DlgPreferences::wplaylist
[src/dlgpreferences.h:81]: (possible error) Memory leak: DlgPreferences::wNoMidi
[src/dlgpreferences.h:82]: (possible error) Memory leak: DlgPreferences::wcontrols
[src/dlgpreferences.h:83]: (possible error) Memory leak: DlgPreferences::weq
[src/dlgpreferences.h:84]: (possible error) Memory leak: DlgPreferences::wcrossfader
[src/dlgpreferences.h:85]: (possible error) Memory leak: DlgPreferences::wrecord
[src/dlgpreferences.h:86]: (possible error) Memory leak: DlgPreferences::wbpm
[src/dlgpreferences.h:90]: (possible error) Memory leak: DlgPreferences::m_pSoundButton
[src/dlgpreferences.h:91]: (possible error) Memory leak: DlgPreferences::m_pPlaylistButton
[src/dlgpreferences.h:92]: (possible error) Memory leak: DlgPreferences::m_pControlsButton
[src/dlgpreferences.h:93]: (possible error) Memory leak: DlgPreferences::m_pEqButton
[src/dlgpreferences.h:94]: (possible error) Memory leak: DlgPreferences::m_pCrossfaderButton
[src/dlgpreferences.h:95]: (possible error) Memory leak: DlgPreferences::m_pRecordingButton
[src/dlgpreferences.h:96]: (possible error) Memory leak: DlgPreferences::m_pBPMdetectButton
[src/dlgpreferences.h:99]: (possible error) Memory leak: DlgPreferences::m_pMIDITreeItem
[src/dlgpreferences.h:87]: (possible error) Memory leak: DlgPreferences::wvinylcontrol
[src/dlgpreferences.h:97]: (possible error) Memory leak: DlgPreferences::m_pVinylControlButton
[src/dlgpreferences.h:88]: (possible error) Memory leak: DlgPreferences::wshoutcast
[src/dlgpreferences.h:98]: (possible error) Memory leak: DlgPreferences::m_pShoutcastButton
[src/dlgprefmidibindings.h:71]: (possible error) Memory leak: DlgPrefMidiBindings::m_pMidiOptionDelegate
[src/dlgprefmidibindings.h:72]: (possible error) Memory leak: DlgPrefMidiBindings::m_pControlGroupDelegate
[src/dlgprefmidibindings.h:73]: (possible error) Memory leak: DlgPrefMidiBindings::m_pControlValueDelegate
[src/dlgprefmidibindings.h:77]: (possible error) Memory leak: DlgPrefMidiBindings::m_pDlgMidiLearning
[src/dlgprefrecord.h:57]: (possible error) Memory leak: DlgPrefRecord::recordControl
[src/dlgprefshoutcast.h:51]: (possible error) Memory leak: DlgPrefShoutcast::m_pUpdateShoutcastFromPrefs
[src/dlgprefvinyl.h:82]: (possible error) Memory leak: DlgPrefVinyl::m_timecodeQuality1
[src/dlgprefvinyl.h:83]: (possible error) Memory leak: DlgPrefVinyl::m_timecodeQuality2
[src/dlgprefvinyl.h:84]: (possible error) Memory leak: DlgPrefVinyl::m_vinylControlInput1L
[src/dlgprefvinyl.h:85]: (possible error) Memory leak: DlgPrefVinyl::m_vinylControlInput1R
[src/dlgprefvinyl.h:86]: (possible error) Memory leak: DlgPrefVinyl::m_vinylControlInput2L
[src/dlgprefvinyl.h:87]: (possible error) Memory leak: DlgPrefVinyl::m_vinylControlInput2R
[src/encodermp3.h:48]: (possible error) Memory leak: EncoderMp3::m_bufferOut
[src/engine/enginebuffer.h:164]: (possible error) Memory leak: EngineBuffer::audioBeatMark
[src/engine/enginebuffer.h:164]: (possible error) Memory leak: EngineBuffer::buttonBeatSync
[src/engine/enginebuffer.h:165]: (possible error) Memory leak: EngineBuffer::buttonRateTempDown
[src/engine/enginebuffer.h:165]: (possible error) Memory leak: EngineBuffer::buttonRateTempDownSmall
[src/engine/enginebuffer.h:165]: (possible error) Memory leak: EngineBuffer::buttonRateTempUp
[src/engine/enginebuffer.h:165]: (possible error) Memory leak: EngineBuffer::buttonRateTempUpSmall
[src/engine/enginebuffer.h:166]: (possible error) Memory leak: EngineBuffer::buttonRatePermDown
[src/engine/enginebuffer.h:166]: (possible error) Memory leak: EngineBuffer::buttonRatePermDownSmall
[src/engine/enginefilterblock.h:47]: (possible error) Memory leak: EngineFilterBlock::m_pTemp1
[src/engine/enginefilterblock.h:47]: (possible error) Memory leak: EngineFilterBlock::m_pTemp2
[src/engine/enginefilterblock.h:47]: (possible error) Memory leak: EngineFilterBlock::m_pTemp3
[src/engine/enginebuffer.h:166]: (possible error) Memory leak: EngineBuffer::buttonRatePermUp
[src/engine/enginefilterblock.h:52]: (possible error) Memory leak: EngineFilterBlock::m_loEqFreq
[src/engine/enginefilterblock.h:52]: (possible error) Memory leak: EngineFilterBlock::m_hiEqFreq
[src/engine/enginefilterblock.h:53]: (possible error) Memory leak: EngineFilterBlock::m_lofiEq
[src/engine/enginebuffer.h:166]: (possible error) Memory leak: EngineBuffer::buttonRatePermUpSmall
[src/engine/enginebuffer.h:167]: (possible error) Memory leak: EngineBuffer::buttonLoop
[src/engine/enginebuffer.h:169]: (possible error) Memory leak: EngineBuffer::rateEngine
[src/engine/enginebuffer.h:169]: (possible error) Memory leak: EngineBuffer::m_pRateDir
[src/engine/enginebuffer.h:169]: (possible error) Memory leak: EngineBuffer::m_pRateRange
[src/engine/enginebuffer.h:171]: (possible error) Memory leak: EngineBuffer::m_pJog
[src/engine/enginebuffer.h:172]: (possible error) Memory leak: EngineBuffer::m_pRateSearch
[src/engine/enginebuffer.h:174]: (possible error) Memory leak: EngineBuffer::wheelTouchSensor
[src/engine/enginebuffer.h:174]: (possible error) Memory leak: EngineBuffer::wheelTouchSwitch
[src/engine/enginebuffer.h:175]: (possible error) Memory leak: EngineBuffer::playposSlider
[src/engine/enginebuffer.h:176]: (possible error) Memory leak: EngineBuffer::visualPlaypos
[src/engine/enginebuffer.h:177]: (possible error) Memory leak: EngineBuffer::m_pFileBpm
[src/engine/enginebuffer.h:186]: (possible error) Memory leak: EngineBuffer::m_pTrackEndMode
[src/engine/enginebuffer.h:188]: (possible error) Memory leak: EngineBuffer::bpmControl
[src/engine/enginebuffer.h:190]: (possible error) Memory leak: EngineBuffer::beatEventControl
[src/engine/enginebuffer.h:192]: (possible error) Memory leak: EngineBuffer::reverseButton
[src/engine/enginebuffer.h:194]: (possible error) Memory leak: EngineBuffer::fwdButton
[src/engine/enginebuffer.h:194]: (possible error) Memory leak: EngineBuffer::backButton
[src/engine/enginemaster.h:63]: (possible error) Memory leak: EngineMaster::flanger
[src/engine/enginebuffer.h:194]: (possible error) Memory leak: EngineBuffer::startButton
[src/engine/enginemaster.h:67]: (possible error) Memory leak: EngineMaster::vumeter
[src/engine/enginebuffer.h:194]: (possible error) Memory leak: EngineBuffer::endButton
[src/engine/enginemaster.h:68]: (possible error) Memory leak: EngineMaster::volume1
[src/engine/enginemaster.h:68]: (possible error) Memory leak: EngineMaster::volume2
[src/engine/enginemaster.h:69]: (possible error) Memory leak: EngineMaster::vumeter1
[src/engine/enginemaster.h:69]: (possible error) Memory leak: EngineMaster::vumeter2
[src/engine/enginemaster.h:70]: (possible error) Memory leak: EngineMaster::vinylsound1
[src/engine/enginemaster.h:70]: (possible error) Memory leak: EngineMaster::vinylsound2
[src/engine/enginebuffer.h:201]: (possible error) Memory leak: EngineBuffer::m_pEngineBufferCue
[src/engine/enginemaster.h:76]: (possible error) Memory leak: EngineMaster::xFaderCurve
[src/engine/enginemaster.h:76]: (possible error) Memory leak: EngineMaster::xFaderCalibration
[src/engine/enginemaster.h:77]: (possible error) Memory leak: EngineMaster::transform1
[src/engine/enginemaster.h:77]: (possible error) Memory leak: EngineMaster::transform2
[src/engine/enginebuffer.h:245]: (possible error) Memory leak: EngineBuffer::m_jogfilter
[src/engine/enginemaster.h:65]: (possible error) Memory leak: EngineMaster::ladspa
[src/engine/enginesidechain.h:59]: (possible error) Memory leak: EngineSideChain::m_pShoutcastNeedUpdateFromPrefs
[src/engine/enginesidechain.h:60]: (possible error) Memory leak: EngineSideChain::m_pShoutcastNeedUpdateFromPrefsCOTM
[src/engine/enginetemporal.h:66]: (possible error) Memory leak: EngineTemporal::m_pControlPhaseRate
[src/ladspa/ladspainstance.h:41]: (possible error) Memory leak: LADSPAInstance::m_pControlObjectSampleRate
[src/ladspa/ladspapresetinstance.cpp:66]: (possible error) Memory leak: potmeterThreadMain
[src/ladspa/ladspapresetslot.cpp:92]: (possible error) Memory leak: control
[src/ladspa/ladspapresetslot.cpp:104]: (possible error) Memory leak: control
[src/ladspa/ladspapresetslot.cpp:177]: (possible error) Memory leak: control
[src/ladspa/ladspapresetslot.h:43]: (possible error) Memory leak: LADSPAPresetSlot::m_pRemoveButton
[src/ladspa/ladspapresetslot.h:44]: (possible error) Memory leak: LADSPAPresetSlot::m_pEnableButton
[src/ladspa/ladspapresetslot.h:45]: (possible error) Memory leak: LADSPAPresetSlot::m_pDryWetKnob
[src/ladspa/ladspapresetslot.h:46]: (possible error) Memory leak: LADSPAPresetSlot::m_pLabel
[src/ladspa/ladspapresetslot.h:47]: (possible error) Memory leak: LADSPAPresetSlot::m_pDryWetLabel
[src/ladspa/ladspapresetslot.h:56]: (possible error) Memory leak: LADSPAPresetSlot::m_pScrollArea
[src/ladspa/ladspapresetslot.h:57]: (possible error) Memory leak: LADSPAPresetSlot::m_pScrollWidget
[src/ladspaview.cpp:161]: (possible error) Memory leak: p
[src/ladspaview.h:36]: (possible error) Memory leak: LADSPAView::m_pPresetList
[src/ladspaview.h:37]: (possible error) Memory leak: LADSPAView::m_pPresetManager
[src/ladspaview.h:38]: (possible error) Memory leak: LADSPAView::m_pSlotTable
[src/libraryscanner.h:43]: (possible error) Memory leak: LibraryScanner::m_pProgress
[src/libraryscannerdlg.h:51]: (possible error) Memory leak: LibraryScannerDlg::m_progress
[src/libraryscannerdlg.h:52]: (possible error) Memory leak: LibraryScannerDlg::m_current
[src/libraryscannerdlg.h:53]: (possible error) Memory leak: LibraryScannerDlg::m_cancel
[src/mididevicehandler.h:31]: (possible error) Memory leak: MidiDeviceHandler::m_pMidi
[src/midimapping.h:142]: (possible error) Memory leak: MidiMapping::m_pMidiInputMappingTableModel
[src/midimapping.h:143]: (possible error) Memory leak: MidiMapping::m_pMidiOutputMappingTableModel
[src/mixxx.cpp:340]: (possible error) Memory leak: sr
[src/mixxx.cpp:154]: (possible error) Memory leak: latency
[src/mixxx.cpp:340]: (possible error) Memory leak: midiHandler
[src/mixxx.cpp:1126]: (possible error) Memory leak: about
[src/mixxx.h:158]: (possible error) Memory leak: MixxxApp::control
[src/mixxx.h:166]: (possible error) Memory leak: MixxxApp::fileMenu
[src/mixxx.h:170]: (possible error) Memory leak: MixxxApp::libraryMenu
[src/mixxx.h:172]: (possible error) Memory leak: MixxxApp::optionsMenu
[src/mixxx.h:174]: (possible error) Memory leak: MixxxApp::viewMenu
[src/mixxx.h:176]: (possible error) Memory leak: MixxxApp::helpMenu
[src/mixxx.h:188]: (possible error) Memory leak: MixxxApp::fileLoadSongPlayer1
[src/mixxxview.cpp:498]: (possible error) Memory leak: p
[src/mixxxview.cpp:527]: (possible error) Memory leak: p
[src/mixxx.h:189]: (possible error) Memory leak: MixxxApp::fileLoadSongPlayer2
[src/mixxxview.h:75]: (possible error) Memory leak: MixxxView::m_pTrackTableView
[src/mixxx.h:194]: (possible error) Memory leak: MixxxApp::fileQuit
[src/mixxx.h:200]: (possible error) Memory leak: MixxxApp::playlistsNew
[src/mixxx.h:201]: (possible error) Memory leak: MixxxApp::playlistsImport
[src/mixxx.h:206]: (possible error) Memory leak: MixxxApp::batchBpmDetect
[src/mixxx.h:208]: (possible error) Memory leak: MixxxApp::libraryRescan
[src/mixxxview.h:81]: (possible error) Memory leak: MixxxView::m_pNumberPosCh1
[src/mixxx.h:210]: (possible error) Memory leak: MixxxApp::optionsBeatMark
[src/mixxx.h:214]: (possible error) Memory leak: MixxxApp::optionsRecord
[src/mixxxview.h:81]: (possible error) Memory leak: MixxxView::m_pNumberPosCh2
[src/mixxxview.h:83]: (possible error) Memory leak: MixxxView::m_pSliderRateCh1
[src/mixxx.h:215]: (possible error) Memory leak: MixxxApp::optionsFullScreen
[src/mixxx.h:216]: (possible error) Memory leak: MixxxApp::optionsPreferences
[src/mixxxview.h:83]: (possible error) Memory leak: MixxxView::m_pSliderRateCh2
[src/mixxx.h:218]: (possible error) Memory leak: MixxxApp::helpAboutApp
[src/mixxxview.h:85]: (possible error) Memory leak: MixxxView::m_pComboBox
[src/mixxx.h:219]: (possible error) Memory leak: MixxxApp::helpSupport
[src/mixxxview.h:89]: (possible error) Memory leak: MixxxView::m_pLineEditSearch
[src/mixxxview.h:93]: (possible error) Memory leak: MixxxView::m_pOverviewCh1
[src/mixxxview.h:93]: (possible error) Memory leak: MixxxView::m_pOverviewCh2
[src/mixxxview.h:117]: (possible error) Memory leak: MixxxView::m_pKeyboard
[src/mixxxview.h:121]: (possible error) Memory leak: MixxxView::m_pTabWidget
[src/mixxxview.h:123]: (possible error) Memory leak: MixxxView::m_pTabWidgetLibraryPage
[src/mixxxview.h:127]: (possible error) Memory leak: MixxxView::m_pLibraryPageLayout
[src/mixxxview.h:129]: (possible error) Memory leak: MixxxView::m_pEffectsPageLayout
[src/readerextractbeat.h:94]: (possible error) Memory leak: ReaderExtractBeat::peaks
[src/readerextractbeat.h:100]: (possible error) Memory leak: ReaderExtractBeat::beatCorr
[src/mixxx.h:204]: (possible error) Memory leak: MixxxApp::iPodToggle
[src/mixxxview.h:133]: (possible error) Memory leak: MixxxView::m_pLADSPAView
[src/script/midiscriptengine.h:87]: (possible error) Memory leak: MidiScriptEngine::m_pEngine
[src/script/numberrecorder.h:42]: (possible error) Memory leak: NumberRecorder::m_p
[src/script/scriptengine.h:44]: (possible error) Memory leak: ScriptEngine::m_rec
[src/script/scriptengine.h:45]: (possible error) Memory leak: ScriptEngine::m_studio
[src/script/scriptengine.h:47]: (possible error) Memory leak: ScriptEngine::m_pi
[src/script/scriptengine.h:48]: (possible error) Memory leak: ScriptEngine::m_qti
[src/script/scriptengine.h:50]: (possible error) Memory leak: ScriptEngine::m_lua
[src/script/scripttest.h:29]: (possible error) Memory leak: ScriptTest::m_text
[src/script/scripttest.h:30]: (possible error) Memory leak: ScriptTest::m_exec
[src/script/scripttest.h:31]: (possible error) Memory leak: ScriptTest::m_record
[src/script/scripttest.h:32]: (possible error) Memory leak: ScriptTest::m_stop
[src/script/scripttest.h:33]: (possible error) Memory leak: ScriptTest::m_dump
[src/script/scripttest.h:34]: (possible error) Memory leak: ScriptTest::m_play
[src/script/scripttest.h:35]: (possible error) Memory leak: ScriptTest::m_clear
[src/sounddeviceportaudio.cpp:247]: (possible error) Memory leak: pControlObjectSampleRate
[src/sounddeviceportaudio.cpp:247]: (possible error) Memory leak: pControlObjectLatency
[src/soundmanager.cpp:89]: (possible error) Memory leak: pControlObjectLatency
[src/soundmanager.cpp:89]: (possible error) Memory leak: pControlObjectSampleRate
[src/soundmanager.cpp:89]: (possible error) Memory leak: pControlObjectVinylControlMode
[src/soundmanager.cpp:89]: (possible error) Memory leak: pControlObjectVinylControlEnabled
[src/soundmanager.cpp:89]: (possible error) Memory leak: pControlObjectVinylControlGain
[src/soundmanager.cpp:89]: (possible error) Memory leak: pControlObjectVinylControlSignalQuality1
[src/soundmanager.cpp:89]: (possible error) Memory leak: pControlObjectVinylControlSignalQuality2
[src/soundmanager.cpp:89]: (possible error) Memory leak: pControlObjectVinylControlInputStrengthL1
[src/soundmanager.cpp:89]: (possible error) Memory leak: pControlObjectVinylControlInputStrengthR1
[src/soundmanager.cpp:89]: (possible error) Memory leak: pControlObjectVinylControlInputStrengthL2
[src/soundmanager.cpp:89]: (possible error) Memory leak: pControlObjectVinylControlInputStrengthR2
[src/soundsourcemp3.h:81]: (possible error) Memory leak: SoundSourceMp3::Frame
[src/trackimporter.cpp:121]: (possible error) Memory leak: pPlaylist
[src/trackimporter.h:69]: (possible error) Memory leak: TrackImporter::m_pM3uparser
[src/mixxx.h:224]: (possible error) Memory leak: MixxxApp::ladspaShow
[src/mixxx.h:236]: (possible error) Memory leak: MixxxApp::ladspaDlg
[src/track.h:193]: (possible error) Memory leak: Track::m_pTrackImporter
[src/track.h:204]: (possible error) Memory leak: Track::m_pLibraryModel
[src/track.h:206]: (possible error) Memory leak: Track::m_pPlayQueueModel
[src/track.h:208]: (possible error) Memory leak: Track::m_pPromoModel
[src/track.h:214]: (possible error) Memory leak: Track::m_pPlaylistModel
[src/track.h:216]: (possible error) Memory leak: Track::m_pPlaylistListModel
[src/track.h:223]: (possible error) Memory leak: Track::m_pTrackCollection
[src/vinylcontrol.h:44]: (possible error) Memory leak: VinylControl::playButton
[src/vinylcontrol.h:45]: (possible error) Memory leak: VinylControl::playPos
[src/vinylcontrol.h:46]: (possible error) Memory leak: VinylControl::controlScratch
[src/vinylcontrol.h:47]: (possible error) Memory leak: VinylControl::rateSlider
[src/vinylcontrol.h:48]: (possible error) Memory leak: VinylControl::reverseButton
[src/vinylcontrol.h:49]: (possible error) Memory leak: VinylControl::duration
[src/vinylcontrol.h:50]: (possible error) Memory leak: VinylControl::mode
[src/vinylcontrol.h:51]: (possible error) Memory leak: VinylControl::enabled
[src/vinylcontrol.h:52]: (possible error) Memory leak: VinylControl::rateRange
[src/vinylcontrol.h:53]: (possible error) Memory leak: VinylControl::timecodeQuality
[src/vinylcontrol.h:54]: (possible error) Memory leak: VinylControl::timecodeInputL
[src/vinylcontrol.h:55]: (possible error) Memory leak: VinylControl::timecodeInputR
[src/track.h:231]: (possible error) Memory leak: Track::m_pEndOfTrackCh1
[src/track.h:231]: (possible error) Memory leak: Track::m_pEndOfTrackCh2
[src/track.h:233]: (possible error) Memory leak: Track::m_pEndOfTrackModeCh1
[src/track.h:233]: (possible error) Memory leak: Track::m_pEndOfTrackModeCh2
[src/track.h:235]: (possible error) Memory leak: Track::m_pPlayButtonCh1
[src/track.h:235]: (possible error) Memory leak: Track::m_pPlayButtonCh2
[src/track.h:237]: (possible error) Memory leak: Track::m_pNextTrackCh1
[src/track.h:237]: (possible error) Memory leak: Track::m_pNextTrackCh2
[src/track.h:237]: (possible error) Memory leak: Track::m_pPrevTrackCh1
[src/track.h:237]: (possible error) Memory leak: Track::m_pPrevTrackCh2
[src/track.h:239]: (possible error) Memory leak: Track::m_pCuePointCh1
[src/waveform/glwaveformrenderer.h:56]: (possible error) Memory leak: GLWaveformRenderer::m_pInternalBuffer
[src/track.h:239]: (possible error) Memory leak: Track::m_pCuePointCh2
[src/track.h:241]: (possible error) Memory leak: Track::m_pLoadSelectedTrackCh1
[src/track.h:241]: (possible error) Memory leak: Track::m_pLoadSelectedTrackCh2
[src/waveform/waveformrenderbeat.h:36]: (possible error) Memory leak: WaveformRenderBeat::m_pBpm
[src/waveform/waveformrenderbeat.h:38]: (possible error) Memory leak: WaveformRenderBeat::m_pTrackSamples
[src/track.h:241]: (possible error) Memory leak: Track::m_pLoadSelectedIntoFirstStopped
[src/track.h:241]: (possible error) Memory leak: Track::m_pSelectNextTrack
[src/track.h:241]: (possible error) Memory leak: Track::m_pSelectPrevTrack
[src/track.h:241]: (possible error) Memory leak: Track::m_pSelectTrackKnob
[src/waveform/waveformrenderer.h:67]: (possible error) Memory leak: WaveformRenderer::m_pLatency
[src/track.h:241]: (possible error) Memory leak: Track::m_pSelectNextPlaylist
[src/track.h:241]: (possible error) Memory leak: Track::m_pSelectPrevPlaylist
[src/track.h:243]: (possible error) Memory leak: Track::m_pPlayPositionCh1
[src/track.h:243]: (possible error) Memory leak: Track::m_pPlayPositionCh2
[src/track.h:246]: (possible error) Memory leak: Track::m_pVisualResampleCh1
[src/waveform/waveformrendermark.h:35]: (possible error) Memory leak: WaveformRenderMark::m_pMarkPoint
[src/track.h:246]: (possible error) Memory leak: Track::m_pVisualResampleCh2
[src/waveform/waveformrendermark.h:36]: (possible error) Memory leak: WaveformRenderMark::m_pTrackSamples
[src/track.h:249]: (possible error) Memory leak: Track::m_pScanner
[src/waveformviewerfactory.cpp:73]: (possible error) Memory leak: mb
[src/widget/wnumberpos.h:41]: (possible error) Memory leak: WNumberPos::m_pRateControl
[src/widget/wnumberpos.h:41]: (possible error) Memory leak: WNumberPos::m_pRateDirControl
[src/widget/wnumberpos.h:41]: (possible error) Memory leak: WNumberPos::m_pDurationControl
[src/widget/wsearchlineedit.h:26]: (possible error) Memory leak: WSearchLineEdit::m_clearButton
[src/widget/wvisualsimple.h:65]: (possible error) Memory leak: WVisualSimple::m_pWaveformRenderer
[src/wtracktableview.h:93]: (possible error) Memory leak: WTrackTableView::m_pSearchFilter
[src/wtracktableview.h:95]: (possible error) Memory leak: WTrackTableView::m_pDirFilter
[src/wtracktableview.h:98]: (possible error) Memory leak: WTrackTableView::m_pTable
[src/wtracktableview.h:117]: (possible error) Memory leak: WTrackTableView::PlayQueueAct
[src/wtracktableview.h:119]: (possible error) Memory leak: WTrackTableView::Player1Act
[src/wtracktableview.h:121]: (possible error) Memory leak: WTrackTableView::Player2Act
[src/wtracktableview.h:123]: (possible error) Memory leak: WTrackTableView::RemoveAct
[src/wtracktableview.h:125]: (possible error) Memory leak: WTrackTableView::PropertiesAct
[src/wtracktableview.h:127]: (possible error) Memory leak: WTrackTableView::CopyToLibraryAct
[src/wtracktableview.h:129]: (possible error) Memory leak: WTrackTableView::VisitWebsiteAct
[src/wtracktableview.h:133]: (possible error) Memory leak: WTrackTableView::RenamePlaylistAct
[src/wtracktableview.h:181]: (possible error) Memory leak: WTrackTableView::m_pDirModel
[src/mixxx.h:179]: (possible error) Memory leak: MixxxApp::macroMenu
[src/mixxx.h:221]: (possible error) Memory leak: MixxxApp::macroStudio
[src/track.h:211]: (possible error) Memory leak: Track::m_pIPodModel
[src/mixxx.h:212]: (possible error) Memory leak: MixxxApp::optionsVinylControl

Albert Santoni (gamegod) wrote :

Some of these look valid, mainly the ones that aren't in GUI classes.

Changed in mixxx:
status: New → Triaged
importance: Undecided → Low
RAFFI TEA (raffitea) wrote :

I am a hobby DJ and have tested Mixxx 1.7.0 thoroughly at home during the last weekends. In particular, I tested Mixxx on my Laptop (Dual Core 2 Duo 1.66GHz, 2 GB DDR2 RAM, two cheap USB sound cards) without MIDI and Vinyl control. Both on Vista (32Bit) and Kubuntu 64 Bit (I used the old portaudio packages as recommended) Mixxx was not able to overcome a time period of 7 hours without crashing once.

I found out that the main memory usage of Mixxx grows continuously whenever new songs are loaded to the decks. After four to five hours of DJing, Mixxx takes about 1.5 GB of memory on my system. A crash is inevitable.

Running the more powerful memory leack checker valgrind yields numerous of definite and possible memory leaks, see attachment.

Committed fixes for the biggest offender shown in the output (SSMP3/Analyserqueue) and the EngineBuffer thing in r2509 of the 1.7 branch. A good number of those "leaks" are likely immaterial since they only show up when Mixxx is shutting down anyway, which was the case with the EngineBuffer thing, but it's still good practice to have them clean up after themselves properly so we need to fix each of these, no matter how small.

RAFFI TEA (raffitea) wrote :

Thanks Pegasus!

I have just check out the new 1.7 branch. Seems to work fine now. One can observe the "delete" in the task manager when the AnalyserQueue has finished calculation of a SoundSource object :-)

Tomorrow, I try to DJing 7 to 8 hours non-stop. I am confident that Mixxx won't crash due to low memory (2 GB RAM should be enough :-) )

Tobias Rafreider wrote:
> Tomorrow, I try to DJing 7 to 8 hours non-stop. I am confident that
> Mixxx won't crash due to low memory (2 GB RAM should be enough :-) )

Hah! I'm using a 512MB RAM laptop and had issues after just one hour! Do
let us know how it goes though.

Sean
"D.J. Pegasus"

<<--------------------------------------------------------------------------------->>
This E-Mail message has been scanned for viruses
and cleared by >>SmartMail<< from Smarter Technology, Inc.
<<--------------------------------------------------------------------------------->>

RJ Skerry-Ryan (rryan) wrote :

The main problem with the growing memory usage is that TrackInfoObjects
(especially the waveform generated for the TIO) are not free'd after
some interval of not being in use. This means that if you load 10
tracks, the memory to store the waveform for each track is resident in
memory. This is nice because if you reload the track, the waveform shows
up instantly -- but it's not nice because if you are on a system with
low ram, or DJing for long periods of time, you'll run out of memory :-/.

Pegasus wrote:
> Tobias Rafreider wrote:
>
>> Tomorrow, I try to DJing 7 to 8 hours non-stop. I am confident that
>> Mixxx won't crash due to low memory (2 GB RAM should be enough :-) )
>>
>
> Hah! I'm using a 512MB RAM laptop and had issues after just one hour! Do
> let us know how it goes though.
>
> Sean
> "D.J. Pegasus"
>
> <<--------------------------------------------------------------------------------->>
> This E-Mail message has been scanned for viruses
> and cleared by >>SmartMail<< from Smarter Technology, Inc.
> <<--------------------------------------------------------------------------------->>
>
>

Robin Sheat (eythian) wrote :

Op zaterdag 29 augustus 2009 19:57:20 schreef RJ Ryan:
> some interval of not being in use. This means that if you load 10
> tracks, the memory to store the waveform for each track is resident in
> memory. This is nice because if you reload the track, the waveform shows
> up instantly -- but it's not nice because if you are on a system with
> low ram, or DJing for long periods of time, you'll run out of memory :-/.

Presumably an easy fix to this is simply to cache the last /n/ waveforms
requested, and free them as they fall out of the cache.

--
Robin <email address hidden> JabberID: <email address hidden>
http://www.kallisti.net.nz/blog ||| http://identi.ca/eythian

PGP Key 0xA99CEB6D = 5957 6D23 8B16 EFAB FEF8 7175 14D3 6485 A99C EB6D

RAFFI TEA (raffitea) wrote :

Of course, holding TrackInfoObjects has advantages. The key of every DJ software, however, is stability. Moreover, a DJ system must be designed to meet the requirements of non-stop playing (in Germany a club session starts at 10p.m and ends at around 5a.m). There is no way out to tackle this problem.

To my mind, there are two possibilities to overcome this problem:
1. Follow the suggestion from Robin Sheat and introduce a cache...
2. It might be possible to serialise TrackInfoObjects in the XML file, Mixxx uses to store the library.

RJ Ryan wrote:
> The main problem with the growing memory usage is that TrackInfoObjects
> (especially the waveform generated for the TIO) are not free'd after
> some interval of not being in use. This means that if you load 10
> tracks, the memory to store the waveform for each track is resident in
> memory. This is nice because if you reload the track, the waveform shows
> up instantly -- but it's not nice because if you are on a system with
> low ram, or DJing for long periods of time, you'll run out of memory :-/.

RAFFI TEA (raffitea) wrote :

I have tested the less memory consuming Mixx version at the weekend. First of all, the biggest memory leak is definitely fixed. After 4 hours of playing, the modified version of Mixxx 1.7.0 took about 300 MB of memory (remember that the original version takes about 1.5 GB). After 6 hours of non-stop playing, it was about 400 MB.

To summarise:
If your system has enough RAM, let’s say 1GB, you should not get problems on Linux/Ubuntu. A fresh (K)Ubuntu installation will require about 500 to 600 MB of RAM when you use Gnome or KDE as desktops. Same argumentation should be valid for WinXP. On Vista, however, you will probably need more that 1 GB of RAM. Otherwise, the swap files are used which may influence the latency.

My test environment consists of an Intel Dual Core Processor with 2 GB RAM, Kubuntu 64bit. No vinyl and MIDI interface. I used MP3 files which are mostly encoded in 192 or better qualities.

Unfortunately, Mixxx "crashed" after 6h20min. The sound suddenly became very slow. But that’s probably because of my two cheap sound cards (about 10 EUR each). Next time I try to use the Audio4DJ.

RAFFI TEA (raffitea) wrote :

I had a quick look at the valgrind output of Yves and was quite surprised. In Mixxx Trunk (for 1.8), AnalyserQueue does not delete SoundSource objects in method run as opposed to Mixxx 1.7.1.

RJ Skerry-Ryan (rryan) wrote :

Tobias Rafreider wrote:
> I had a quick look at the valgrind output of Yves and was quite
> surprised. In Mixxx Trunk (for 1.8), AnalyserQueue does not delete
> SoundSource objects in method run as opposed to Mixxx 1.7.1.
>
>
Nice catch Tobias -- though this is expected because we haven't merged
the 1.7.1 fixes to trunk yet. We need to make sure to remember to do
that before we release 1.8.

Changed in mixxx:
status: Triaged → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers