[QGIS Commit] r15760 - in trunk/qgis/src: core providers/grass

svn_qgis at osgeo.org svn_qgis at osgeo.org
Mon Apr 18 12:09:40 EDT 2011


Author: rblazek
Date: 2011-04-18 09:09:40 -0700 (Mon, 18 Apr 2011)
New Revision: 15760

Modified:
   trunk/qgis/src/core/qgsrasterdataprovider.cpp
   trunk/qgis/src/providers/grass/qgsgrassrasterprovider.cpp
Log:
fixed crash when zooming out so that raster map extent is smaller than canvas pixel

Modified: trunk/qgis/src/core/qgsrasterdataprovider.cpp
===================================================================
--- trunk/qgis/src/core/qgsrasterdataprovider.cpp	2011-04-18 15:53:55 UTC (rev 15759)
+++ trunk/qgis/src/core/qgsrasterdataprovider.cpp	2011-04-18 16:09:40 UTC (rev 15760)
@@ -53,6 +53,9 @@
 
   // TODO: init data by nulls
 
+  // If we zoom out too much, projector srcRows / srcCols maybe 0, which can cause problems in providers
+  if ( myProjector.srcRows() <= 0 || myProjector.srcCols() <= 0 ) return;
+
   // Allocate memory for not projected source data
   int mySize = dataTypeSize( bandNo ) / 8;
   void *mySrcData = malloc( mySize * myProjector.srcRows() * myProjector.srcCols() );

Modified: trunk/qgis/src/providers/grass/qgsgrassrasterprovider.cpp
===================================================================
--- trunk/qgis/src/providers/grass/qgsgrassrasterprovider.cpp	2011-04-18 15:53:55 UTC (rev 15759)
+++ trunk/qgis/src/providers/grass/qgsgrassrasterprovider.cpp	2011-04-18 16:09:40 UTC (rev 15760)
@@ -211,6 +211,8 @@
   QgsDebugMsg( "pixelHeight = "  + QString::number( pixelHeight ) );
   QgsDebugMsg( "viewExtent: " + viewExtent.toString() );
 
+  if ( pixelWidth <= 0 || pixelHeight <= 0 ) return;
+
   QStringList arguments;
   arguments.append( "map=" +  mMapName + "@" + mMapset );
 



More information about the QGIS-commit mailing list