[QGIS Commit] r10580 - trunk/qgis/src/providers/grass
svn_qgis at osgeo.org
svn_qgis at osgeo.org
Thu Apr 16 18:06:29 EDT 2009
Author: jef
Date: 2009-04-16 18:06:29 -0400 (Thu, 16 Apr 2009)
New Revision: 10580
Modified:
trunk/qgis/src/providers/grass/qgsgrassprovider.cpp
Log:
fix #1371
Modified: trunk/qgis/src/providers/grass/qgsgrassprovider.cpp
===================================================================
--- trunk/qgis/src/providers/grass/qgsgrassprovider.cpp 2009-04-16 20:15:45 UTC (rev 10579)
+++ trunk/qgis/src/providers/grass/qgsgrassprovider.cpp 2009-04-16 22:06:29 UTC (rev 10580)
@@ -654,7 +654,20 @@
layer.nUsers = 1;
// Open map
- layer.mapId = openMap( gisdbase, location, mapset, mapName );
+ QgsGrass::init();
+ QgsGrass::resetError();
+ if ( setjmp( QgsGrass::fatalErrorEnv() ) == 0 )
+ {
+ layer.mapId = openMap( gisdbase, location, mapset, mapName );
+ }
+ QgsGrass::clearErrorEnv();
+
+ if ( QgsGrass::getError() == QgsGrass::FATAL )
+ {
+ QgsDebugMsg( QString( "Cannot open vector map: %1" ).arg( QgsGrass::getErrorMessage() ) );
+ return -1;
+ }
+
if ( layer.mapId < 0 )
{
QgsDebugMsg( "Cannot open vector map" );
@@ -671,7 +684,7 @@
// Add new layer to layers
mLayers.push_back( layer );
- QgsDebugMsg( QString( "New layer successfully opened%1" ).arg( layer.nAttributes ) );
+ QgsDebugMsg( QString( "New layer successfully opened: %1" ).arg( layer.nAttributes ) );
return mLayers.size() - 1;
}
@@ -946,7 +959,7 @@
delete[] mLayers[layerId].minmax;
// Field info
- free( mLayers[layerId].fieldInfo );
+ G_free( mLayers[layerId].fieldInfo );
closeMap( mLayers[layerId].mapId );
}
More information about the QGIS-commit
mailing list