Skip to content

Commit 3b3556b

Browse files
author
jef
committed
fix #1371
git-svn-id: http://svn.osgeo.org/qgis/trunk@10580 c8812cc2-4d05-0410-92ff-de0c093fc19c
1 parent 93b2f42 commit 3b3556b

File tree

1 file changed

+16
-3
lines changed

1 file changed

+16
-3
lines changed

src/providers/grass/qgsgrassprovider.cpp

+16-3
Original file line numberDiff line numberDiff line change
@@ -654,7 +654,20 @@ int QgsGrassProvider::openLayer( QString gisdbase, QString location, QString map
654654
layer.nUsers = 1;
655655

656656
// Open map
657-
layer.mapId = openMap( gisdbase, location, mapset, mapName );
657+
QgsGrass::init();
658+
QgsGrass::resetError();
659+
if ( setjmp( QgsGrass::fatalErrorEnv() ) == 0 )
660+
{
661+
layer.mapId = openMap( gisdbase, location, mapset, mapName );
662+
}
663+
QgsGrass::clearErrorEnv();
664+
665+
if ( QgsGrass::getError() == QgsGrass::FATAL )
666+
{
667+
QgsDebugMsg( QString( "Cannot open vector map: %1" ).arg( QgsGrass::getErrorMessage() ) );
668+
return -1;
669+
}
670+
658671
if ( layer.mapId < 0 )
659672
{
660673
QgsDebugMsg( "Cannot open vector map" );
@@ -671,7 +684,7 @@ int QgsGrassProvider::openLayer( QString gisdbase, QString location, QString map
671684
// Add new layer to layers
672685
mLayers.push_back( layer );
673686

674-
QgsDebugMsg( QString( "New layer successfully opened%1" ).arg( layer.nAttributes ) );
687+
QgsDebugMsg( QString( "New layer successfully opened: %1" ).arg( layer.nAttributes ) );
675688

676689
return mLayers.size() - 1;
677690
}
@@ -946,7 +959,7 @@ void QgsGrassProvider::closeLayer( int layerId )
946959
delete[] mLayers[layerId].minmax;
947960

948961
// Field info
949-
free( mLayers[layerId].fieldInfo );
962+
G_free( mLayers[layerId].fieldInfo );
950963

951964
closeMap( mLayers[layerId].mapId );
952965
}

0 commit comments

Comments
 (0)