Coverity: fix issues reported in QJsonModel

- Also reported upstream, in the MIT-licensed version of same.

This is a re-hash of b348a45834,
adding memory-leak prevention when load() is called.
This commit is contained in:
Adriaan de Groot 2017-10-30 06:33:54 -04:00
parent b15d970845
commit a138eb501c
2 changed files with 9 additions and 5 deletions

View File

@ -26,11 +26,9 @@
#include "qjsonitem.h" #include "qjsonitem.h"
QJsonTreeItem::QJsonTreeItem(QJsonTreeItem *parent) QJsonTreeItem::QJsonTreeItem(QJsonTreeItem *parent)
: mParent( parent )
, mType( QJsonValue::Type::Null )
{ {
mParent = parent;
} }
QJsonTreeItem::~QJsonTreeItem() QJsonTreeItem::~QJsonTreeItem()

View File

@ -33,14 +33,19 @@
QJsonModel::QJsonModel(QObject *parent) : QJsonModel::QJsonModel(QObject *parent) :
QAbstractItemModel(parent) QAbstractItemModel(parent)
, mRootItem( new QJsonTreeItem )
{ {
mRootItem = new QJsonTreeItem;
mHeaders.append("key"); mHeaders.append("key");
mHeaders.append("value"); mHeaders.append("value");
} }
QJsonModel::~QJsonModel()
{
delete mRootItem;
}
bool QJsonModel::load(const QString &fileName) bool QJsonModel::load(const QString &fileName)
{ {
QFile file(fileName); QFile file(fileName);
@ -66,6 +71,7 @@ bool QJsonModel::loadJson(const QByteArray &json)
if (!mDocument.isNull()) if (!mDocument.isNull())
{ {
beginResetModel(); beginResetModel();
delete mRootItem;
if (mDocument.isArray()) { if (mDocument.isArray()) {
mRootItem = QJsonTreeItem::load(QJsonValue(mDocument.array())); mRootItem = QJsonTreeItem::load(QJsonValue(mDocument.array()));
} else { } else {