[QGIS Commit] r14929 - in trunk/qgis/src: core/raster providers/wms

svn_qgis at osgeo.org svn_qgis at osgeo.org
Thu Dec 16 11:51:22 EST 2010


Author: jef
Date: 2010-12-16 08:51:22 -0800 (Thu, 16 Dec 2010)
New Revision: 14929

Modified:
   trunk/qgis/src/core/raster/qgsrasterlayer.cpp
   trunk/qgis/src/providers/wms/qgswmsprovider.cpp
Log:
fix #3343

Modified: trunk/qgis/src/core/raster/qgsrasterlayer.cpp
===================================================================
--- trunk/qgis/src/core/raster/qgsrasterlayer.cpp	2010-12-16 15:42:52 UTC (rev 14928)
+++ trunk/qgis/src/core/raster/qgsrasterlayer.cpp	2010-12-16 16:51:22 UTC (rev 14929)
@@ -3250,11 +3250,16 @@
         QgsDebugMsg( "Instantiated the data provider plugin" +
                      QString( " with layer list of " ) + layers.join( ", " ) + " and style list of " + styles.join( ", " ) +
                      " and format of " + format +  " and CRS of " + crs );
-        if ( mDataProvider->isValid() )
+        mValid = mDataProvider->isValid();
+
+        if ( mValid )
         {
-          mValid = true;
+          mDataProvider->addLayers( layers, styles );
+          mValid = mDataProvider->isValid();
+        }
 
-          mDataProvider->addLayers( layers, styles );
+        if ( mValid )
+        {
           mDataProvider->setImageEncoding( format );
           mDataProvider->setImageCrs( crs );
 
@@ -3287,6 +3292,10 @@
             *mCRS = QgsCoordinateReferenceSystem( mDataProvider->crs() );
           }
         }
+        else
+        {
+          QgsLogger::warning( "QgsRasterLayer::setDataProvider: invalid layer" );
+        }
       }
       else
       {

Modified: trunk/qgis/src/providers/wms/qgswmsprovider.cpp
===================================================================
--- trunk/qgis/src/providers/wms/qgswmsprovider.cpp	2010-12-16 15:42:52 UTC (rev 14928)
+++ trunk/qgis/src/providers/wms/qgswmsprovider.cpp	2010-12-16 16:51:22 UTC (rev 14929)
@@ -291,6 +291,13 @@
   QgsDebugMsg( "Entering with layer list of " + layers.join( ", " )
                + " and style list of " + styles.join( ", " ) );
 
+  if ( layers.size() != styles.size() )
+  {
+    QgsDebugMsg( "number of layers and styles don't match" );
+    valid = false;
+    return;
+  }
+
   // TODO: Make activeSubLayers a std::map in order to avoid duplicates
   activeSubLayers += layers;
   activeSubStyles += styles;



More information about the QGIS-commit mailing list