[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