From ac6c32421ec8f36c4a6ccdff326dc7e9a6c37ef1 Mon Sep 17 00:00:00 2001 From: Nyall Dawson Date: Fri, 28 Aug 2015 10:17:32 +1000 Subject: [PATCH] Coverity uninitialized member fixes --- .../qgsfieldconditionalformatwidget.sip | 2 ++ src/app/qgisapp.cpp | 10 ++++++---- src/app/qgisapp.h | 2 ++ src/app/qgsversioninfo.cpp | 5 ++++- src/core/qgsexpression.cpp | 2 +- src/core/qgsexpression.h | 4 +++- .../qgsfieldconditionalformatwidget.cpp | 12 ++++++++++-- .../attributetable/qgsfieldconditionalformatwidget.h | 2 ++ tests/src/core/testqgscomposermap.cpp | 3 +++ 9 files changed, 33 insertions(+), 9 deletions(-) diff --git a/python/gui/attributetable/qgsfieldconditionalformatwidget.sip b/python/gui/attributetable/qgsfieldconditionalformatwidget.sip index b0c2d2a53f2c..b0916a7f4995 100644 --- a/python/gui/attributetable/qgsfieldconditionalformatwidget.sip +++ b/python/gui/attributetable/qgsfieldconditionalformatwidget.sip @@ -17,6 +17,8 @@ class QgsFieldConditionalFormatWidget : QWidget */ explicit QgsFieldConditionalFormatWidget( QWidget *parent /TransferThis/ = 0 ); + ~QgsFieldConditionalFormatWidget(); + /** Switches the widget to the rules page. */ void viewRules(); diff --git a/src/app/qgisapp.cpp b/src/app/qgisapp.cpp index e0f6d5ec38e9..aa3750eeee0f 100644 --- a/src/app/qgisapp.cpp +++ b/src/app/qgisapp.cpp @@ -1029,6 +1029,8 @@ QgisApp::~QgisApp() delete mMapTools.mSplitParts; delete mMapTools.mSvgAnnotation; delete mMapTools.mTextAnnotation; + delete mMapTools.mCircularStringCurvePoint; + delete mMapTools.mCircularStringRadius; delete mpMaptip; @@ -1148,7 +1150,7 @@ void QgisApp::readSettings() QStringList oldRecentProjects = settings.value( "/UI/recentProjectsList" ).toStringList(); settings.remove( "/UI/recentProjectsList" ); - Q_FOREACH( const QString& project, oldRecentProjects ) + Q_FOREACH ( const QString& project, oldRecentProjects ) { QgsWelcomePageItemsModel::RecentProjectData data; data.path = project; @@ -1160,7 +1162,7 @@ void QgisApp::readSettings() settings.beginGroup( "/UI/recentProjects" ); QStringList projectKeys = settings.childGroups(); - Q_FOREACH( const QString& key, projectKeys ) + Q_FOREACH ( const QString& key, projectKeys ) { QgsWelcomePageItemsModel::RecentProjectData data; settings.beginGroup( key ); @@ -2738,7 +2740,7 @@ void QgisApp::updateRecentProjectPaths() { mRecentProjectsMenu->clear(); - Q_FOREACH( const QgsWelcomePageItemsModel::RecentProjectData& recentProject, mRecentProjects ) + Q_FOREACH ( const QgsWelcomePageItemsModel::RecentProjectData& recentProject, mRecentProjects ) { QAction* action = mRecentProjectsMenu->addAction( QString( "%1 (%2)" ).arg( recentProject.title ).arg( recentProject.path ) ); action->setEnabled( QFile::exists(( recentProject.path ) ) ); @@ -2807,7 +2809,7 @@ void QgisApp::saveRecentProjectPath( QString projectPath, bool savePreviewImage int idx = 0; // Persist the list - Q_FOREACH( const QgsWelcomePageItemsModel::RecentProjectData& recentProject, mRecentProjects ) + Q_FOREACH ( const QgsWelcomePageItemsModel::RecentProjectData& recentProject, mRecentProjects ) { ++idx; settings.beginGroup( QString( "/UI/recentProjects/%1" ).arg( idx ) ); diff --git a/src/app/qgisapp.h b/src/app/qgisapp.h index 43b031e02f8a..b2922adf1e95 100644 --- a/src/app/qgisapp.h +++ b/src/app/qgisapp.h @@ -1439,6 +1439,8 @@ class APP_EXPORT QgisApp : public QMainWindow, private Ui::MainWindow , mMeasureArea( 0 ) , mMeasureAngle( 0 ) , mAddFeature( 0 ) + , mCircularStringCurvePoint( 0 ) + , mCircularStringRadius( 0 ) , mMoveFeature( 0 ) , mOffsetCurve( 0 ) , mReshapeFeatures( 0 ) diff --git a/src/app/qgsversioninfo.cpp b/src/app/qgsversioninfo.cpp index ab52327865e1..383379fb6038 100644 --- a/src/app/qgsversioninfo.cpp +++ b/src/app/qgsversioninfo.cpp @@ -18,7 +18,10 @@ #include "qgsnetworkaccessmanager.h" -QgsVersionInfo::QgsVersionInfo( QObject *parent ) : QObject( parent ) +QgsVersionInfo::QgsVersionInfo( QObject *parent ) + : QObject( parent ) + , mLatestVersion( 0 ) + , mError( QNetworkReply::NoError ) { } diff --git a/src/core/qgsexpression.cpp b/src/core/qgsexpression.cpp index 3cf006ef8cfc..ef3cf1384d67 100644 --- a/src/core/qgsexpression.cpp +++ b/src/core/qgsexpression.cpp @@ -3283,6 +3283,6 @@ bool QgsExpression::Node::prepare( QgsExpression* parent, const QgsExpressionCon QVariant QgsExpression::StaticFunction::func( const QVariantList &values, const QgsFeature* f, QgsExpression* parent ) { Q_NOWARN_DEPRECATED_PUSH - return mFnc( values, f, parent ); + return mFnc ? mFnc( values, f, parent ) : QVariant(); Q_NOWARN_DEPRECATED_POP } diff --git a/src/core/qgsexpression.h b/src/core/qgsexpression.h index c83a53bbcc14..e91e04486a1d 100644 --- a/src/core/qgsexpression.h +++ b/src/core/qgsexpression.h @@ -437,6 +437,7 @@ class CORE_EXPORT QgsExpression bool handlesNull = false ) : Function( fnname, params, group, helpText, usesGeometry, referencedColumns, lazyEval, handlesNull ) , mFnc( fcn ) + , mContextFnc( 0 ) , mAliases( aliases ) {} @@ -455,6 +456,7 @@ class CORE_EXPORT QgsExpression const QStringList& aliases = QStringList(), bool handlesNull = false ) : Function( fnname, params, group, helpText, usesGeometry, referencedColumns, lazyEval, handlesNull ) + , mFnc( 0 ) , mContextFnc( fcn ) , mAliases( aliases ) {} @@ -468,7 +470,7 @@ class CORE_EXPORT QgsExpression */ virtual QVariant func( const QVariantList& values, const QgsExpressionContext* context, QgsExpression* parent ) override { - return mContextFnc( values, context, parent ); + return mContextFnc ? mContextFnc( values, context, parent ) : QVariant(); } virtual QStringList aliases() const override { return mAliases; } diff --git a/src/gui/attributetable/qgsfieldconditionalformatwidget.cpp b/src/gui/attributetable/qgsfieldconditionalformatwidget.cpp index 6dc1c1311621..33ac8bdb0e55 100644 --- a/src/gui/attributetable/qgsfieldconditionalformatwidget.cpp +++ b/src/gui/attributetable/qgsfieldconditionalformatwidget.cpp @@ -6,9 +6,12 @@ #include "qgssymbollayerv2utils.h" #include "qgsstylev2.h" -QgsFieldConditionalFormatWidget::QgsFieldConditionalFormatWidget( QWidget *parent ) : - QWidget( parent ) +QgsFieldConditionalFormatWidget::QgsFieldConditionalFormatWidget( QWidget *parent ) + : QWidget( parent ) + , mLayer( 0 ) + , mEditIndex( 0 ) , mEditing( false ) + , mSymbol( 0 ) { setupUi( this ); mDeleteButton->hide(); @@ -35,6 +38,11 @@ QgsFieldConditionalFormatWidget::QgsFieldConditionalFormatWidget( QWidget *paren setPresets( defaultPresets() ); } +QgsFieldConditionalFormatWidget::~QgsFieldConditionalFormatWidget() +{ + delete mSymbol; +} + void QgsFieldConditionalFormatWidget::updateIcon() { mSymbol = QgsSymbolV2::defaultSymbol( QGis::Point ); diff --git a/src/gui/attributetable/qgsfieldconditionalformatwidget.h b/src/gui/attributetable/qgsfieldconditionalformatwidget.h index 3ac089c02882..dcbce6e2abf4 100644 --- a/src/gui/attributetable/qgsfieldconditionalformatwidget.h +++ b/src/gui/attributetable/qgsfieldconditionalformatwidget.h @@ -41,6 +41,8 @@ class GUI_EXPORT QgsFieldConditionalFormatWidget : public QWidget, private Ui::Q */ explicit QgsFieldConditionalFormatWidget( QWidget *parent = 0 ); + ~QgsFieldConditionalFormatWidget(); + /** Switches the widget to the rules page. */ void viewRules(); diff --git a/tests/src/core/testqgscomposermap.cpp b/tests/src/core/testqgscomposermap.cpp index 6788484ccd06..725b8d0d628f 100644 --- a/tests/src/core/testqgscomposermap.cpp +++ b/tests/src/core/testqgscomposermap.cpp @@ -39,6 +39,9 @@ class TestQgsComposerMap : public QObject , mComposerMap( 0 ) , mMapSettings( 0 ) , mRasterLayer( 0 ) + , mPointsLayer( 0 ) + , mPolysLayer( 0 ) + , mLinesLayer( 0 ) {} private slots: