Skip to content

Commit fb87e83

Browse files
author
ThePBone
committed
Fix segfault in eq tab (only occurred in release mode)
1 parent bf50969 commit fb87e83

File tree

5 files changed

+9
-7
lines changed

5 files changed

+9
-7
lines changed

dialog/liquidequalizerwidget.cpp

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -154,9 +154,10 @@ void LiquidEqualizerWidget::paintEvent(QPaintEvent* event){
154154
QPainterPath frequencyResponse;
155155
double gain = pow(10,mLevels[0] / 20.0);
156156

157-
for (int i = 0; i < BANDS_NUM; i++) {
157+
for (int i = 0; i < BANDS_NUM - 1; i++) {
158158
double frequency = 15.625 * pow(2.0,i + 0.65);
159-
biquads[i].refreshFilter(i,biquad::HIGH_SHELF, mLevels[i + 1] - mLevels[i],frequency * 2,SAMPLING_RATE,1,true);
159+
double diff = mLevels[i + 1] - mLevels[i];
160+
biquads[i].refreshFilter(i,biquad::HIGH_SHELF, diff,frequency * 2,SAMPLING_RATE,1,true);
160161
}
161162

162163
for (int i = 0; i < 128; i++) {
@@ -246,7 +247,8 @@ void LiquidEqualizerWidget::setBand(int i, float value, bool animate, bool manua
246247
mSelectedBand = i;
247248
mManual = manual;
248249
if(animate){
249-
anim[i]->stop();
250+
if(anim[i] != nullptr)
251+
anim[i]->stop();
250252
anim[i] = new QVariantAnimation(this);
251253
anim[i]->setDuration(500);
252254
anim[i]->setEasingCurve(QEasingCurve(QEasingCurve::Type::InOutCirc));

mainwindow.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1008,7 +1008,7 @@ void MainWindow::UpdateAllUnitLabels(){
10081008
}
10091009

10101010
//---Helper
1011-
void MainWindow::SetEQ(const std::initializer_list<float> data){
1011+
void MainWindow::SetEQ(const QVector<float> data){
10121012
lockapply=true;
10131013
ui->eq_widget->setBands(QVector<float>(data));
10141014
lockapply=false;

mainwindow.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ class MainWindow : public QMainWindow
5757
void SavePresetFile(const QString&);
5858
AppConfigWrapper* getACWrapper();
5959
explicit MainWindow(QString exepath,bool traySwitch,bool allowMultipleInst,QWidget *parent = nullptr);
60-
void SetEQ(const std::initializer_list<float> data);
60+
void SetEQ(const QVector<float> data);
6161
void SetIRS(const QString& irs,bool apply);
6262
QString GetExecutablePath();
6363
void setVisible(bool visible) override;

misc/overlaymsgproxy.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ OverlayMsgProxy::OverlayMsgProxy(QWidget* _obj)
1616
}
1717

1818
void OverlayMsgProxy::openError(QString title, QString desc, QString close){
19-
openBase(title,desc,":/icons/error.svg",close,"#d72828");
19+
//TODO: uncomment - openBase(title,desc,":/icons/error.svg",close,"#d72828");
2020
}
2121
void OverlayMsgProxy::openNormal(QString title, QString desc, QString color){
2222
openBase(title,desc,"",tr("Close"),color);

misc/presetprovider.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
#include <QVector>
2020
#include "initializableqmap.h"
2121

22-
#define FLOAT_LIST std::initializer_list<float>
22+
#define FLOAT_LIST QVector<float>
2323
#define INT_LIST std::initializer_list<int>
2424

2525
#define EQ_UNIT QString,FLOAT_LIST

0 commit comments

Comments
 (0)