mirror of
https://github.com/qgis/QGIS.git
synced 2025-02-22 00:06:12 -05:00
[spatialite] Fix a bunch of leaks
This commit is contained in:
parent
5c0b7d8b78
commit
aa04760f80
@ -792,6 +792,10 @@ void QgsSpatiaLiteProvider::loadFieldsAbstractInterface( gaiaVectorLayerPtr lyr
|
||||
mPrimaryKeyAttrs << i - 1;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
sqlite3_free( errMsg );
|
||||
}
|
||||
|
||||
// check for constraints
|
||||
fetchConstraints();
|
||||
@ -823,7 +827,8 @@ QString QgsSpatiaLiteProvider::spatialiteVersion()
|
||||
ret = sqlite3_get_table( mSqliteHandle, sql.toUtf8(), &results, &rows, &columns, &errMsg );
|
||||
if ( ret != SQLITE_OK || rows != 1 )
|
||||
{
|
||||
QgsMessageLog::logMessage( tr( "Retrieval of spatialite version failed" ), tr( "SpatiaLite" ) );
|
||||
QgsMessageLog::logMessage( tr( "Retrieval of spatialite version failed: %1" ).arg( QString( errMsg ) ), tr( "SpatiaLite" ) );
|
||||
sqlite3_free( errMsg );
|
||||
return QString();
|
||||
}
|
||||
|
||||
@ -1282,6 +1287,10 @@ void QgsSpatiaLiteProvider::determineViewPrimaryKey()
|
||||
}
|
||||
sqlite3_free_table( results );
|
||||
}
|
||||
else
|
||||
{
|
||||
sqlite3_free( errMsg );
|
||||
}
|
||||
}
|
||||
|
||||
QStringList QgsSpatiaLiteProvider::tablePrimaryKeys( const QString &tableName ) const
|
||||
@ -1337,6 +1346,11 @@ bool QgsSpatiaLiteProvider::hasTriggers()
|
||||
|
||||
ret = sqlite3_get_table( sqliteHandle(), sql.toUtf8().constData(), &results, &rows, &columns, &errMsg );
|
||||
sqlite3_free_table( results );
|
||||
if ( ret != SQLITE_OK )
|
||||
{
|
||||
sqlite3_free( errMsg );
|
||||
}
|
||||
|
||||
return ( ret == SQLITE_OK && rows > 0 );
|
||||
}
|
||||
|
||||
@ -6028,10 +6042,12 @@ bool QgsSpatiaLiteProviderMetadata::styleExists( const QString &uri, const QStri
|
||||
if ( SQLITE_OK != ret )
|
||||
{
|
||||
QgsSqliteHandle::closeDb( handle );
|
||||
QgsMessageLog::logMessage( QObject::tr( "Error executing query: %1" ).arg( countIfExist ) );
|
||||
QgsMessageLog::logMessage( QObject::tr( "Error executing query %1: %2" ).arg( countIfExist ).arg( QString( errMsg ) ) );
|
||||
sqlite3_free( errMsg );
|
||||
errorCause = QObject::tr( "Error looking for style. The query was logged" );
|
||||
return false;
|
||||
}
|
||||
sqlite3_free_table( results );
|
||||
if ( rows == 0 )
|
||||
{
|
||||
// layer_styles table does not exist
|
||||
@ -6058,6 +6074,7 @@ bool QgsSpatiaLiteProviderMetadata::styleExists( const QString &uri, const QStri
|
||||
sqlError = errMsg;
|
||||
sqlite3_free( errMsg );
|
||||
}
|
||||
sqlite3_free_table( results );
|
||||
QgsSqliteHandle::closeDb( handle );
|
||||
|
||||
if ( SQLITE_OK != ret )
|
||||
@ -6099,7 +6116,8 @@ bool QgsSpatiaLiteProviderMetadata::saveStyle( const QString &uri, const QString
|
||||
if ( SQLITE_OK != ret )
|
||||
{
|
||||
QgsSqliteHandle::closeDb( handle );
|
||||
QgsMessageLog::logMessage( QObject::tr( "Error executing query: %1" ).arg( countIfExist ) );
|
||||
QgsMessageLog::logMessage( QObject::tr( "Error executing query %1: %2" ).arg( countIfExist ).arg( QString( errMsg ) ) );
|
||||
sqlite3_free( errMsg );
|
||||
errCause = QObject::tr( "Error looking for style. The query was logged" );
|
||||
return false;
|
||||
}
|
||||
@ -6180,14 +6198,15 @@ bool QgsSpatiaLiteProviderMetadata::saveStyle( const QString &uri, const QString
|
||||
if ( SQLITE_OK != ret )
|
||||
{
|
||||
QgsSqliteHandle::closeDb( handle );
|
||||
QgsMessageLog::logMessage( QObject::tr( "Error executing query: %1" ).arg( checkQuery ) );
|
||||
QgsMessageLog::logMessage( QObject::tr( "Error executing query %1: %2" ).arg( checkQuery ).arg( QString( errMsg ) ) );
|
||||
sqlite3_free( errMsg );
|
||||
errCause = QObject::tr( "Error looking for style. The query was logged" );
|
||||
return false;
|
||||
}
|
||||
|
||||
sqlite3_free_table( results );
|
||||
if ( 0 != rows )
|
||||
{
|
||||
sqlite3_free_table( results );
|
||||
sql = QString( "UPDATE layer_styles"
|
||||
" SET useAsDefault=%1"
|
||||
",styleQML=%2"
|
||||
@ -6290,6 +6309,7 @@ QString QgsSpatiaLiteProviderMetadata::loadStoredStyle( const QString &uri, QStr
|
||||
if ( SQLITE_OK != ret )
|
||||
{
|
||||
QgsSqliteHandle::closeDb( handle );
|
||||
sqlite3_free( errMsg );
|
||||
errCause = QObject::tr( "Error executing loading style. The query was logged" );
|
||||
return QString();
|
||||
}
|
||||
@ -6330,6 +6350,7 @@ int QgsSpatiaLiteProviderMetadata::listStyles( const QString &uri, QStringList &
|
||||
if ( SQLITE_OK != ret )
|
||||
{
|
||||
QgsSqliteHandle::closeDb( handle );
|
||||
sqlite3_free( errMsg );
|
||||
errCause = QObject::tr( "Error looking for style. The query was logged" );
|
||||
return -1;
|
||||
}
|
||||
@ -6363,6 +6384,7 @@ int QgsSpatiaLiteProviderMetadata::listStyles( const QString &uri, QStringList &
|
||||
if ( SQLITE_OK != ret )
|
||||
{
|
||||
QgsSqliteHandle::closeDb( handle );
|
||||
sqlite3_free( errMsg );
|
||||
errCause = QObject::tr( "Error loading styles. The query was logged" );
|
||||
return -1;
|
||||
}
|
||||
@ -6388,6 +6410,7 @@ int QgsSpatiaLiteProviderMetadata::listStyles( const QString &uri, QStringList &
|
||||
if ( SQLITE_OK != ret )
|
||||
{
|
||||
QgsSqliteHandle::closeDb( handle );
|
||||
sqlite3_free( errMsg );
|
||||
errCause = QObject::tr( "Error executing the select query for unrelated styles. The query was logged" );
|
||||
return -1;
|
||||
}
|
||||
@ -6438,6 +6461,7 @@ QString QgsSpatiaLiteProviderMetadata::getStyleById( const QString &uri, const Q
|
||||
else
|
||||
{
|
||||
QgsMessageLog::logMessage( QObject::tr( "Style with id %1 not found in %2 (Query: %3)" ).arg( styleId, sqlitePath, selectQmlQuery ) );
|
||||
sqlite3_free( errMsg );
|
||||
errCause = QObject::tr( "Error executing the select query. The query was logged" );
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user