diff options
author | intealls <johan@wennersten.eu> | 2017-01-14 22:00:59 +0100 |
---|---|---|
committer | intealls <johan@wennersten.eu> | 2017-01-14 22:00:59 +0100 |
commit | f0887bfd0ac86c1bdede2f7aa1c2e2e89b1d9746 (patch) | |
tree | c20bbcadea676c94450bd8791677d43e59d320fc /src/osd | |
parent | 9b3214af37b7f0ee94a60f088c1e0ab2b315670e (diff) |
fix memory leak and log error checking
Diffstat (limited to 'src/osd')
-rw-r--r-- | src/osd/modules/sound/pa_sound.cpp | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/src/osd/modules/sound/pa_sound.cpp b/src/osd/modules/sound/pa_sound.cpp index 37a0afd1e34..23664e61cd7 100644 --- a/src/osd/modules/sound/pa_sound.cpp +++ b/src/osd/modules/sound/pa_sound.cpp @@ -272,6 +272,7 @@ int sound_pa::init(osd_options const &options) return 0; pa_error: + delete m_ab; osd_printf_verbose("PortAudio error: %s\n", Pa_GetErrorText(err)); Pa_Terminate(); error: @@ -406,17 +407,15 @@ void sound_pa::exit() return; #if LOG_BUFCNT - if (m_log.good()) - { - std::ofstream m_logfile(LOG_FILE); + std::ofstream m_logfile(LOG_FILE); - if (m_logfile.is_open()) { - m_logfile << m_log.str(); - m_logfile.close(); - } else { - osd_printf_verbose("PortAudio: Could not write log.\n"); - } + if (m_log.good() && m_logfile.is_open()) { + m_logfile << m_log.str(); + m_logfile.close(); } + + if (!m_log.good() || m_logfile.fail()) + osd_printf_verbose("PortAudio: Error writing log.\n"); #endif Pa_StopStream(m_pa_stream); |