RequestRepeater remove memory leak through payloads argument

pull/20546/head
Willem Melching 4 years ago
parent 31a612c6e4
commit 7bc0b27ae5
  1. 8
      selfdrive/ui/qt/api.cc
  2. 4
      selfdrive/ui/qt/api.hpp

@ -76,14 +76,14 @@ QString CommaApi::create_jwt() {
return create_jwt(*(new QVector<QPair<QString, QJsonValue>>())); return create_jwt(*(new QVector<QPair<QString, QJsonValue>>()));
} }
RequestRepeater::RequestRepeater(QWidget* parent, QString requestURL, int period_seconds, const QString &cache_key, QVector<QPair<QString, QJsonValue>> payloads, bool disableWithScreen) RequestRepeater::RequestRepeater(QWidget* parent, QString requestURL, int period_seconds, const QString &cache_key, bool disableWithScreen)
: disableWithScreen(disableWithScreen), cache_key(cache_key), QObject(parent) { : disableWithScreen(disableWithScreen), cache_key(cache_key), QObject(parent) {
networkAccessManager = new QNetworkAccessManager(this); networkAccessManager = new QNetworkAccessManager(this);
reply = NULL; reply = NULL;
QTimer* timer = new QTimer(this); QTimer* timer = new QTimer(this);
QObject::connect(timer, &QTimer::timeout, [=](){sendRequest(requestURL, payloads);}); QObject::connect(timer, &QTimer::timeout, [=](){sendRequest(requestURL);});
timer->start(period_seconds * 1000); timer->start(period_seconds * 1000);
networkTimer = new QTimer(this); networkTimer = new QTimer(this);
@ -98,13 +98,13 @@ RequestRepeater::RequestRepeater(QWidget* parent, QString requestURL, int period
} }
} }
void RequestRepeater::sendRequest(QString requestURL, QVector<QPair<QString, QJsonValue>> payloads){ void RequestRepeater::sendRequest(QString requestURL){
if (GLWindow::ui_state.scene.started || !active || reply != NULL || if (GLWindow::ui_state.scene.started || !active || reply != NULL ||
(!GLWindow::ui_state.awake && disableWithScreen)) { (!GLWindow::ui_state.awake && disableWithScreen)) {
return; return;
} }
QString token = CommaApi::create_jwt(payloads); QString token = CommaApi::create_jwt({});
QNetworkRequest request; QNetworkRequest request;
request.setUrl(QUrl(requestURL)); request.setUrl(QUrl(requestURL));
request.setRawHeader(QByteArray("Authorization"), ("JWT " + token).toUtf8()); request.setRawHeader(QByteArray("Authorization"), ("JWT " + token).toUtf8());

@ -33,7 +33,7 @@ class RequestRepeater : public QObject {
Q_OBJECT Q_OBJECT
public: public:
explicit RequestRepeater(QWidget* parent, QString requestURL, int period = 10, const QString &cache_key = "", QVector<QPair<QString, QJsonValue>> payloads = *(new QVector<QPair<QString, QJsonValue>>()), bool disableWithScreen = true); explicit RequestRepeater(QWidget* parent, QString requestURL, int period = 10, const QString &cache_key = "", bool disableWithScreen = true);
bool active = true; bool active = true;
private: private:
@ -42,7 +42,7 @@ private:
QNetworkAccessManager* networkAccessManager; QNetworkAccessManager* networkAccessManager;
QTimer* networkTimer; QTimer* networkTimer;
QString cache_key; QString cache_key;
void sendRequest(QString requestURL, QVector<QPair<QString, QJsonValue>> payloads); void sendRequest(QString requestURL);
private slots: private slots:
void requestTimeout(); void requestTimeout();

Loading…
Cancel
Save