summaryrefslogtreecommitdiffstatshomepage
path: root/src/osd
diff options
context:
space:
mode:
author intealls <johan@wennersten.eu>2017-01-14 22:00:59 +0100
committer intealls <johan@wennersten.eu>2017-01-14 22:00:59 +0100
commitf0887bfd0ac86c1bdede2f7aa1c2e2e89b1d9746 (patch)
treec20bbcadea676c94450bd8791677d43e59d320fc /src/osd
parent9b3214af37b7f0ee94a60f088c1e0ab2b315670e (diff)
fix memory leak and log error checking
Diffstat (limited to 'src/osd')
-rw-r--r--src/osd/modules/sound/pa_sound.cpp17
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);