From 732617251cec192ec47b1172b3c215df6331742d Mon Sep 17 00:00:00 2001 From: pkviet Date: Sun, 13 May 2018 01:48:50 +0200 Subject: [PATCH 1/6] UI: Fix mem leak with volume meter --- UI/volume-control.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/UI/volume-control.cpp b/UI/volume-control.cpp index 532fa8728..dd18ba437 100644 --- a/UI/volume-control.cpp +++ b/UI/volume-control.cpp @@ -531,6 +531,7 @@ VolumeMeter::VolumeMeter(QWidget *parent, obs_volmeter_t *obs_volmeter, VolumeMeter::~VolumeMeter() { updateTimerRef->RemoveVolControl(this); + delete tickPaintCache; } void VolumeMeter::setLevels(const float magnitude[MAX_AUDIO_CHANNELS], From 340c2e5fb75b6a4104328316ab907762dface12a Mon Sep 17 00:00:00 2001 From: pkviet Date: Sun, 13 May 2018 02:25:12 +0200 Subject: [PATCH 2/6] UI: Fix mem leak with tray menu --- UI/window-basic-main.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/UI/window-basic-main.cpp b/UI/window-basic-main.cpp index 84977f8a7..6dbb5bff6 100644 --- a/UI/window-basic-main.cpp +++ b/UI/window-basic-main.cpp @@ -1857,6 +1857,7 @@ OBSBasic::~OBSBasic() if (updateCheckThread && updateCheckThread->isRunning()) updateCheckThread->wait(); + delete trayMenu; delete programOptions; delete program; From 7f3464c8ceed02ab8220a6a6e4527c5971ca2037 Mon Sep 17 00:00:00 2001 From: pkviet Date: Sun, 13 May 2018 02:26:47 +0200 Subject: [PATCH 3/6] UI: Fix mem leak with multiview projector menu --- UI/window-basic-main.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/UI/window-basic-main.cpp b/UI/window-basic-main.cpp index 6dbb5bff6..74daa296f 100644 --- a/UI/window-basic-main.cpp +++ b/UI/window-basic-main.cpp @@ -1857,6 +1857,7 @@ OBSBasic::~OBSBasic() if (updateCheckThread && updateCheckThread->isRunning()) updateCheckThread->wait(); + delete multiviewProjectorMenu; delete trayMenu; delete programOptions; delete program; From 15a642291eb29dcc61f3217401a8132b380c77fa Mon Sep 17 00:00:00 2001 From: pkviet Date: Sun, 13 May 2018 03:03:41 +0200 Subject: [PATCH 4/6] UI: Fix mem leak with QCompleter --- UI/window-basic-settings.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/UI/window-basic-settings.cpp b/UI/window-basic-settings.cpp index e9cfc00f6..968af51fc 100644 --- a/UI/window-basic-settings.cpp +++ b/UI/window-basic-settings.cpp @@ -714,7 +714,7 @@ OBSBasicSettings::~OBSBasicSettings() { bool disableHotkeysInFocus = config_get_bool(App()->GlobalConfig(), "General", "DisableHotkeysInFocus"); - + delete ui->filenameFormatting->completer(); main->EnableOutputs(true); App()->EnableInFocusHotkeys(!disableHotkeysInFocus); } From f1f49bc197f44f1f20cb268da2f9fdcda82049a0 Mon Sep 17 00:00:00 2001 From: pkviet Date: Sun, 13 May 2018 14:37:48 +0200 Subject: [PATCH 5/6] librtmp: Fix memory leak A leak was introduced by commit 1682d77 (July 11 2015). This is a fix. --- plugins/obs-outputs/librtmp/rtmp.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/plugins/obs-outputs/librtmp/rtmp.c b/plugins/obs-outputs/librtmp/rtmp.c index dccad0e74..fe409bc6d 100644 --- a/plugins/obs-outputs/librtmp/rtmp.c +++ b/plugins/obs-outputs/librtmp/rtmp.c @@ -4288,14 +4288,14 @@ RTMP_Close(RTMP *r) r->m_customSendParam = NULL; #if defined(CRYPTO) || defined(USE_ONLY_MD5) + for (int idx = 0; idx < r->Link.nStreams; idx++) + { + free(r->Link.streams[idx].playpath.av_val); + r->Link.streams[idx].playpath.av_val = NULL; + } + if (!(r->Link.protocol & RTMP_FEATURE_WRITE) || (r->Link.pFlags & RTMP_PUB_CLEAN)) { - for (int idx = 0; idx < r->Link.nStreams; idx++) - { - free(r->Link.streams[idx].playpath.av_val); - r->Link.streams[idx].playpath.av_val = NULL; - } - r->Link.curStreamIdx = 0; r->Link.nStreams = 0; } From b378261bdf1f6893ea402fe730cc145036ce54aa Mon Sep 17 00:00:00 2001 From: craftwar Date: Sun, 13 May 2018 10:41:09 +0800 Subject: [PATCH 6/6] UI: Fix mem leak in VolControl --- UI/slider-absoluteset-style.hpp | 2 +- UI/volume-control.cpp | 13 ++++++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/UI/slider-absoluteset-style.hpp b/UI/slider-absoluteset-style.hpp index a94ebebdd..d275ad2f0 100644 --- a/UI/slider-absoluteset-style.hpp +++ b/UI/slider-absoluteset-style.hpp @@ -6,7 +6,7 @@ class SliderAbsoluteSetStyle : public QProxyStyle { public: SliderAbsoluteSetStyle(const QString& baseStyle); - SliderAbsoluteSetStyle(QStyle* baseStyle); + SliderAbsoluteSetStyle(QStyle* baseStyle = Q_NULLPTR); int styleHint(QStyle::StyleHint hint, const QStyleOption* option, const QWidget* widget, QStyleHintReturn* returnData) const; }; diff --git a/UI/volume-control.cpp b/UI/volume-control.cpp index dd18ba437..80fbe1f6e 100644 --- a/UI/volume-control.cpp +++ b/UI/volume-control.cpp @@ -9,6 +9,7 @@ #include #include #include +#include using namespace std; @@ -246,7 +247,17 @@ VolControl::VolControl(OBSSource source_, bool showConfig, bool vertical) obs_fader_attach_source(obs_fader, source); obs_volmeter_attach_source(obs_volmeter, source); - slider->setStyle(new SliderAbsoluteSetStyle(slider->style())); + QString styleName = slider->style()->objectName(); + QStyle *style; + style = QStyleFactory::create(styleName); + if (!style) { + style = new SliderAbsoluteSetStyle(); + } else { + style = new SliderAbsoluteSetStyle(style); + } + + style->setParent(slider); + slider->setStyle(style); /* Call volume changed once to init the slider position and label */ VolumeChanged();