summaryrefslogtreecommitdiffstats
path: root/message.cpp
diff options
context:
space:
mode:
authorMatt Ranostay <matt.ranostay@konsulko.com>2018-04-30 17:58:11 -0700
committerMatt Ranostay <matt.ranostay@konsulko.com>2018-04-30 17:58:20 -0700
commit57489437e0eb3057d34030325c784d6ac2dbf3fe (patch)
tree03f264c80e8c8c1018ba65aacbe255903b47e732 /message.cpp
parent8e97722e96916a8a2f444645bac4a6ea5434c262 (diff)
libqtappfw: message: fix memory leak with QJsonArray
QJsonArray object was being allocated on the heap and never freed. Switch to having a m_request member field and confirming it is only populated with data once. Change-Id: I60f406eff032650cac878efa7e1db61ee18e2eb2 Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
Diffstat (limited to 'message.cpp')
-rw-r--r--message.cpp16
1 files changed, 10 insertions, 6 deletions
diff --git a/message.cpp b/message.cpp
index 95bc586..33211da 100644
--- a/message.cpp
+++ b/message.cpp
@@ -29,14 +29,18 @@ Message::Message()
bool Message::createRequest(QString api, QString verb, QJsonValue parameter)
{
- QJsonArray *request = new QJsonArray;
- request->append(Call);
- request->append(9999);
- request->append(api + (QString)("/") + verb);
- request->append(QJsonValue(parameter));
+ if (!m_request.isEmpty()){
+ qWarning("Message instance has already been used. Cannot send another request.");
+ return false;
+ }
+
+ m_request.append(Call);
+ m_request.append(9999);
+ m_request.append(api + (QString)("/") + verb);
+ m_request.append(QJsonValue(parameter));
QJsonDocument jdoc;
- jdoc.setArray(*request);
+ jdoc.setArray(m_request);
m_jdoc = jdoc;
m_init = true;