[gdal] 01/05: Imported Upstream version 2.1.1~rc2+dfsg

Bas Couwenberg sebastic at debian.org
Thu Jul 7 12:30:27 UTC 2016


This is an automated email from the git hooks/post-receive script.

sebastic pushed a commit to branch experimental-2.1
in repository gdal.

commit 1f41a3885a5b5e191d16a110b92718c2268847f6
Author: Bas Couwenberg <sebastic at xs4all.nl>
Date:   Thu Jul 7 13:26:54 2016 +0200

    Imported Upstream version 2.1.1~rc2+dfsg
---
 NEWS                                     |  4 ++
 apps/ogr2ogr_bin.cpp                     |  7 +--
 frmts/gtiff/geotiff.cpp                  | 76 +++++++++++++++++++++-----------
 frmts/vrt/vrtwarped.cpp                  | 28 ++++++------
 gcore/gdal_version.h                     |  2 +-
 man/man1/gdal-config.1                   |  2 +-
 man/man1/gdal2tiles.1                    |  2 +-
 man/man1/gdal_calc.1                     |  2 +-
 man/man1/gdal_contour.1                  |  2 +-
 man/man1/gdal_edit.1                     |  2 +-
 man/man1/gdal_fillnodata.1               |  2 +-
 man/man1/gdal_grid.1                     |  2 +-
 man/man1/gdal_merge.1                    |  2 +-
 man/man1/gdal_pansharpen.1               |  2 +-
 man/man1/gdal_polygonize.1               |  2 +-
 man/man1/gdal_proximity.1                |  2 +-
 man/man1/gdal_rasterize.1                |  2 +-
 man/man1/gdal_retile.1                   |  2 +-
 man/man1/gdal_sieve.1                    |  2 +-
 man/man1/gdal_translate.1                |  2 +-
 man/man1/gdal_utilities.1                |  2 +-
 man/man1/gdaladdo.1                      |  2 +-
 man/man1/gdalbuildvrt.1                  |  2 +-
 man/man1/gdalcompare.1                   |  2 +-
 man/man1/gdaldem.1                       |  2 +-
 man/man1/gdalinfo.1                      |  2 +-
 man/man1/gdallocationinfo.1              |  2 +-
 man/man1/gdalmanage.1                    |  2 +-
 man/man1/gdalmove.1                      |  2 +-
 man/man1/gdalsrsinfo.1                   |  2 +-
 man/man1/gdaltindex.1                    |  2 +-
 man/man1/gdaltransform.1                 |  2 +-
 man/man1/gdalwarp.1                      |  2 +-
 man/man1/gnm_utilities.1                 |  2 +-
 man/man1/gnmanalyse.1                    |  2 +-
 man/man1/gnmmanage.1                     |  2 +-
 man/man1/nearblack.1                     |  2 +-
 man/man1/ogr2ogr.1                       |  2 +-
 man/man1/ogr_utilities.1                 |  2 +-
 man/man1/ogrinfo.1                       |  2 +-
 man/man1/ogrlineref.1                    |  2 +-
 man/man1/ogrtindex.1                     |  2 +-
 man/man1/pct2rgb.1                       |  2 +-
 man/man1/rgb2pct.1                       |  2 +-
 ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp |  6 +--
 45 files changed, 116 insertions(+), 85 deletions(-)

diff --git a/NEWS b/NEWS
index 51a723f..2937495 100644
--- a/NEWS
+++ b/NEWS
@@ -35,6 +35,8 @@ ECW driver:
 
 GTiff driver:
  * fix RasterIO() reported when downsampling a RGBA JPEG compressed TIFF file (#6943)
+ * fix suboptimal behaviour before regarding flushing of working buffer (#6580)
+ * fix race between empty block filling logic and background compression threads when using Create() interface and NUM_THREADS creation option (#6582)
  * Internal libtiff: fix 1.11 regression that prevents from reading one-strip files that have no StripByteCounts tag (#6490)
 
 ISCE driver:
@@ -56,6 +58,7 @@ SAFE driver:
 
 VRT driver:
   * avoid useless floating point values in SrcRect / DstRect (#6568)
+  * VRT warp: fix issue with partial blocks at the right/bottom and dest nodata values that are different per band (#6581)
 
 == OGR core ==
  * Fix assertion in OGRGeometryFactory::GetCurveParmeters() on degnerated CIRCULARSTRING (#6553)
@@ -119,6 +122,7 @@ SOSI driver:
 
 WFS driver:
  * invalidate underlying layer when SetIgnoredFields() is called (QGIS #15112)
+ * don't crash on empty <Keyword/> declaration (#6586)
 
 == Perl bindings ==
  * Fix GetGeomFieldIndex()
diff --git a/apps/ogr2ogr_bin.cpp b/apps/ogr2ogr_bin.cpp
index 657cba3..054cd9a 100644
--- a/apps/ogr2ogr_bin.cpp
+++ b/apps/ogr2ogr_bin.cpp
@@ -1,5 +1,5 @@
 /******************************************************************************
- * $Id: ogr2ogr_bin.cpp 34466 2016-06-29 18:18:18Z rouault $
+ * $Id: ogr2ogr_bin.cpp 34578 2016-07-07 10:26:20Z rouault $
  *
  * Project:  OpenGIS Simple Features Reference Implementation
  * Purpose:  Simple client for translating between formats.
@@ -33,7 +33,7 @@
 #include "gdal_utils_priv.h"
 #include "commonutils.h"
 
-CPL_CVSID("$Id: ogr2ogr_bin.cpp 34466 2016-06-29 18:18:18Z rouault $");
+CPL_CVSID("$Id: ogr2ogr_bin.cpp 34578 2016-07-07 10:26:20Z rouault $");
 
 static void Usage(int bShort = TRUE);
 static void Usage(const char* pszAdditionalMsg, int bShort = TRUE);
@@ -191,7 +191,8 @@ int main( int nArgc, char ** papszArgv )
     if( strcmp(psOptionsForBinary->pszDestDataSource, "/vsistdout/") == 0 )
         psOptionsForBinary->bQuiet = TRUE;
 
-    if (!psOptionsForBinary->bQuiet && !psOptionsForBinary->bFormatExplicitlySet)
+    if (!psOptionsForBinary->bQuiet && !psOptionsForBinary->bFormatExplicitlySet &&
+        psOptionsForBinary->eAccessMode == ACCESS_CREATION)
     {
         CheckDestDataSourceNameConsistency(psOptionsForBinary->pszDestDataSource,
                                            psOptionsForBinary->pszFormat);
diff --git a/frmts/gtiff/geotiff.cpp b/frmts/gtiff/geotiff.cpp
index ff9bb8d..bbae1f4 100644
--- a/frmts/gtiff/geotiff.cpp
+++ b/frmts/gtiff/geotiff.cpp
@@ -1,5 +1,5 @@
 /******************************************************************************
- * $Id: geotiff.cpp 34141 2016-04-30 16:44:23Z rouault $
+ * $Id: geotiff.cpp 34555 2016-07-05 18:39:17Z rouault $
  *
  * Project:  GeoTIFF Driver
  * Purpose:  GDAL GeoTIFF support.
@@ -65,7 +65,7 @@
 #include "tifvsi.h"
 #include "xtiffio.h"
 
-CPL_CVSID("$Id: geotiff.cpp 34141 2016-04-30 16:44:23Z rouault $");
+CPL_CVSID("$Id: geotiff.cpp 34555 2016-07-05 18:39:17Z rouault $");
 
 #if SIZEOF_VOIDP == 4
 static int bGlobalStripIntegerOverflow = FALSE;
@@ -437,6 +437,8 @@ class GTiffDataset CPL_FINAL : public GDALPamDataset
     bool        m_bHasGotSiblingFiles;
     char      **GetSiblingFiles();
 
+    void        FlushCacheInternal( bool bFlushDirectory );
+
   protected:
     virtual int         CloseDependentDatasets();
 
@@ -6183,43 +6185,32 @@ int GTiffDataset::Finalize()
     psVirtualMemIOMapping = NULL;
 
 /* -------------------------------------------------------------------- */
-/*      Ensure any blocks write cached by GDAL gets pushed through libtiff.*/
-/* -------------------------------------------------------------------- */
-    GDALPamDataset::FlushCache();
-
-/* -------------------------------------------------------------------- */
 /*      Fill in missing blocks with empty data.                         */
 /* -------------------------------------------------------------------- */
     if( bFillEmptyTiles )
     {
+/* -------------------------------------------------------------------- */
+/*  Ensure any blocks write cached by GDAL gets pushed through libtiff. */
+/* -------------------------------------------------------------------- */
+        FlushCacheInternal( false /* do not call FlushDirectory */ );
+
         FillEmptyTiles();
-        bFillEmptyTiles = FALSE;
+        bFillEmptyTiles = false;
     }
 
 /* -------------------------------------------------------------------- */
 /*      Force a complete flush, including either rewriting(moving)      */
 /*      of writing in place the current directory.                      */
 /* -------------------------------------------------------------------- */
-    FlushCache();
+    FlushCacheInternal( true );
 
-    // Finish compression
+    // Destroy compression pool
     if( poCompressThreadPool )
     {
-        poCompressThreadPool->WaitCompletion();
         delete poCompressThreadPool;
 
-        // Flush remaining data
-        for(int i=0;i<(int)asCompressionJobs.size();i++)
+        for( int i = 0; i < static_cast<int>(asCompressionJobs.size()); ++i )
         {
-            if( asCompressionJobs[i].bReady )
-            {
-                if( asCompressionJobs[i].nCompressedBufferSize )
-                {
-                    WriteRawStripOrTile( asCompressionJobs[i].nStripOrTile,
-                                   asCompressionJobs[i].pabyCompressedBuffer,
-                                   asCompressionJobs[i].nCompressedBufferSize );
-                }
-            }
             CPLFree(asCompressionJobs[i].pabyBuffer);
             if( asCompressionJobs[i].pszTmpFilename )
             {
@@ -7708,9 +7699,15 @@ int GTiffDataset::IsBlockAvailable( int nBlockId )
 /*      cache if need be.                                               */
 /************************************************************************/
 
+
 void GTiffDataset::FlushCache()
 
 {
+    FlushCacheInternal( true );
+}
+
+void GTiffDataset::FlushCacheInternal( bool bFlushDirectory )
+{
     if (bIsFinalized || ppoActiveDSRef == NULL)
         return;
 
@@ -7722,11 +7719,38 @@ void GTiffDataset::FlushCache()
     CPLFree( pabyBlockBuf );
     pabyBlockBuf = NULL;
     nLoadedBlock = -1;
-    bLoadedBlockDirty = FALSE;
+    bLoadedBlockDirty = false;
 
-    if (!SetDirectory())
-        return;
-    FlushDirectory();
+    // Finish compression
+    if( poCompressThreadPool )
+    {
+        poCompressThreadPool->WaitCompletion();
+
+        // Flush remaining data
+        for( int i = 0; i < static_cast<int>(asCompressionJobs.size()); ++i )
+        {
+            if( asCompressionJobs[i].bReady )
+            {
+                if( asCompressionJobs[i].nCompressedBufferSize )
+                {
+                    WriteRawStripOrTile( asCompressionJobs[i].nStripOrTile,
+                                   asCompressionJobs[i].pabyCompressedBuffer,
+                                   asCompressionJobs[i].nCompressedBufferSize );
+                }
+                asCompressionJobs[i].pabyCompressedBuffer = NULL;
+                asCompressionJobs[i].nBufferSize = 0;
+                asCompressionJobs[i].bReady = false;
+                asCompressionJobs[i].nStripOrTile = -1;
+            }
+        }
+    }
+
+    if( bFlushDirectory )
+    {
+        if( !SetDirectory() )
+            return;
+        FlushDirectory();
+    }
 }
 
 /************************************************************************/
diff --git a/frmts/vrt/vrtwarped.cpp b/frmts/vrt/vrtwarped.cpp
index ea3b218..134e3b1 100644
--- a/frmts/vrt/vrtwarped.cpp
+++ b/frmts/vrt/vrtwarped.cpp
@@ -1,5 +1,5 @@
 /******************************************************************************
- * $Id: vrtwarped.cpp 33720 2016-03-15 00:39:53Z goatbar $
+ * $Id: vrtwarped.cpp 34552 2016-07-05 17:47:34Z rouault $
  *
  * Project:  Virtual GDAL Datasets
  * Purpose:  Implementation of VRTWarpedRasterBand *and VRTWarpedDataset.
@@ -38,7 +38,7 @@
 
 #include <algorithm>
 
-CPL_CVSID("$Id: vrtwarped.cpp 33720 2016-03-15 00:39:53Z goatbar $");
+CPL_CVSID("$Id: vrtwarped.cpp 34552 2016-07-05 17:47:34Z rouault $");
 
 /************************************************************************/
 /*                      GDALAutoCreateWarpedVRT()                       */
@@ -1336,9 +1336,17 @@ CPLErr VRTWarpedDataset::ProcessBlock( int iBlockX, int iBlockY )
 /* -------------------------------------------------------------------- */
     const int nWordSize = (GDALGetDataTypeSize(psWO->eWorkingDataType) / 8);
 
-    // FIXME? : risk of overflow in multiplication if nBlockXSize or nBlockYSize are very large
+    int nReqXSize = m_nBlockXSize;
+    if( iBlockX * m_nBlockXSize + nReqXSize > nRasterXSize )
+        nReqXSize = nRasterXSize - iBlockX * m_nBlockXSize;
+    int nReqYSize = m_nBlockYSize;
+    if( iBlockY * m_nBlockYSize + nReqYSize > nRasterYSize )
+        nReqYSize = nRasterYSize - iBlockY * m_nBlockYSize;
+
+    // FIXME? : risk of overflow in multiplication if nReqXSize or
+    // nReqYSize are very large.
     const int nDstBufferSize
-        = m_nBlockXSize * m_nBlockYSize * psWO->nBandCount * nWordSize;
+        = nReqXSize * nReqYSize * psWO->nBandCount * nWordSize;
 
     GByte *pabyDstBuffer = reinterpret_cast<GByte *>(
         VSI_MALLOC_VERBOSE(nDstBufferSize) );
@@ -1364,10 +1372,10 @@ CPLErr VRTWarpedDataset::ProcessBlock( int iBlockX, int iBlockY )
         char **papszInitValues =
             CSLTokenizeStringComplex( pszInitDest, ",", FALSE, FALSE );
         const int nInitCount = CSLCount(papszInitValues);
+        const int nBandSize = nReqXSize * nReqYSize * nWordSize;
 
         for( int iBand = 0; iBand < psWO->nBandCount; iBand++ )
         {
-            const int nBandSize = m_nBlockXSize * m_nBlockYSize * nWordSize;
             const char *pszBandInit
                 = papszInitValues[std::min( iBand, nInitCount - 1 )];
 
@@ -1400,13 +1408,13 @@ CPLErr VRTWarpedDataset::ProcessBlock( int iBlockX, int iBlockY )
             {
                 GDALCopyWords( &adfInitRealImag, GDT_Float64, 0,
                                pBandData,psWO->eWorkingDataType,nWordSize,
-                               m_nBlockXSize * m_nBlockYSize );
+                               nReqXSize * nReqYSize );
             }
             else
             {
                 GDALCopyWords( &adfInitRealImag, GDT_CFloat64, 0,
                                pBandData,psWO->eWorkingDataType,nWordSize,
-                               m_nBlockXSize * m_nBlockYSize );
+                               nReqXSize * nReqYSize );
             }
         }
 
@@ -1416,12 +1424,6 @@ CPLErr VRTWarpedDataset::ProcessBlock( int iBlockX, int iBlockY )
 /* -------------------------------------------------------------------- */
 /*      Warp into this buffer.                                          */
 /* -------------------------------------------------------------------- */
-    int nReqXSize = m_nBlockXSize;
-    if( iBlockX * m_nBlockXSize + nReqXSize > nRasterXSize )
-        nReqXSize = nRasterXSize - iBlockX * m_nBlockXSize;
-    int nReqYSize = m_nBlockYSize;
-    if( iBlockY * m_nBlockYSize + nReqYSize > nRasterYSize )
-        nReqYSize = nRasterYSize - iBlockY * m_nBlockYSize;
 
     CPLErr eErr
         = m_poWarper->WarpRegionToBuffer(
diff --git a/gcore/gdal_version.h b/gcore/gdal_version.h
index 8e8191e..367af46 100644
--- a/gcore/gdal_version.h
+++ b/gcore/gdal_version.h
@@ -22,7 +22,7 @@
 #endif
 
 #ifndef GDAL_RELEASE_DATE
-#  define GDAL_RELEASE_DATE     20160703
+#  define GDAL_RELEASE_DATE     20160707
 #endif
 #ifndef GDAL_RELEASE_NAME
 #  define GDAL_RELEASE_NAME     "2.1.1"
diff --git a/man/man1/gdal-config.1 b/man/man1/gdal-config.1
index 004c4d7..da96dcc 100644
--- a/man/man1/gdal-config.1
+++ b/man/man1/gdal-config.1
@@ -1,4 +1,4 @@
-.TH "gdal-config" 1 "Sun Jul 3 2016" "GDAL" \" -*- nroff -*-
+.TH "gdal-config" 1 "Thu Jul 7 2016" "GDAL" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
diff --git a/man/man1/gdal2tiles.1 b/man/man1/gdal2tiles.1
index 378e2f6..408edd4 100644
--- a/man/man1/gdal2tiles.1
+++ b/man/man1/gdal2tiles.1
@@ -1,4 +1,4 @@
-.TH "gdal2tiles" 1 "Sun Jul 3 2016" "GDAL" \" -*- nroff -*-
+.TH "gdal2tiles" 1 "Thu Jul 7 2016" "GDAL" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
diff --git a/man/man1/gdal_calc.1 b/man/man1/gdal_calc.1
index 1ed46eb..48756d6 100644
--- a/man/man1/gdal_calc.1
+++ b/man/man1/gdal_calc.1
@@ -1,4 +1,4 @@
-.TH "gdal_calc" 1 "Sun Jul 3 2016" "GDAL" \" -*- nroff -*-
+.TH "gdal_calc" 1 "Thu Jul 7 2016" "GDAL" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
diff --git a/man/man1/gdal_contour.1 b/man/man1/gdal_contour.1
index 0de7a4c..366deaf 100644
--- a/man/man1/gdal_contour.1
+++ b/man/man1/gdal_contour.1
@@ -1,4 +1,4 @@
-.TH "gdal_contour" 1 "Sun Jul 3 2016" "GDAL" \" -*- nroff -*-
+.TH "gdal_contour" 1 "Thu Jul 7 2016" "GDAL" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
diff --git a/man/man1/gdal_edit.1 b/man/man1/gdal_edit.1
index c839f8f..adbaae5 100644
--- a/man/man1/gdal_edit.1
+++ b/man/man1/gdal_edit.1
@@ -1,4 +1,4 @@
-.TH "gdal_edit" 1 "Sun Jul 3 2016" "GDAL" \" -*- nroff -*-
+.TH "gdal_edit" 1 "Thu Jul 7 2016" "GDAL" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
diff --git a/man/man1/gdal_fillnodata.1 b/man/man1/gdal_fillnodata.1
index de9c9f2..c48ef1b 100644
--- a/man/man1/gdal_fillnodata.1
+++ b/man/man1/gdal_fillnodata.1
@@ -1,4 +1,4 @@
-.TH "gdal_fillnodata" 1 "Sun Jul 3 2016" "GDAL" \" -*- nroff -*-
+.TH "gdal_fillnodata" 1 "Thu Jul 7 2016" "GDAL" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
diff --git a/man/man1/gdal_grid.1 b/man/man1/gdal_grid.1
index af7c709..82678c2 100644
--- a/man/man1/gdal_grid.1
+++ b/man/man1/gdal_grid.1
@@ -1,4 +1,4 @@
-.TH "gdal_grid" 1 "Sun Jul 3 2016" "GDAL" \" -*- nroff -*-
+.TH "gdal_grid" 1 "Thu Jul 7 2016" "GDAL" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
diff --git a/man/man1/gdal_merge.1 b/man/man1/gdal_merge.1
index 5f38799..41fbf51 100644
--- a/man/man1/gdal_merge.1
+++ b/man/man1/gdal_merge.1
@@ -1,4 +1,4 @@
-.TH "gdal_merge" 1 "Sun Jul 3 2016" "GDAL" \" -*- nroff -*-
+.TH "gdal_merge" 1 "Thu Jul 7 2016" "GDAL" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
diff --git a/man/man1/gdal_pansharpen.1 b/man/man1/gdal_pansharpen.1
index 6d920e8..aaad1a4 100644
--- a/man/man1/gdal_pansharpen.1
+++ b/man/man1/gdal_pansharpen.1
@@ -1,4 +1,4 @@
-.TH "gdal_pansharpen" 1 "Sun Jul 3 2016" "GDAL" \" -*- nroff -*-
+.TH "gdal_pansharpen" 1 "Thu Jul 7 2016" "GDAL" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
diff --git a/man/man1/gdal_polygonize.1 b/man/man1/gdal_polygonize.1
index 2530f0e..62e345c 100644
--- a/man/man1/gdal_polygonize.1
+++ b/man/man1/gdal_polygonize.1
@@ -1,4 +1,4 @@
-.TH "gdal_polygonize" 1 "Sun Jul 3 2016" "GDAL" \" -*- nroff -*-
+.TH "gdal_polygonize" 1 "Thu Jul 7 2016" "GDAL" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
diff --git a/man/man1/gdal_proximity.1 b/man/man1/gdal_proximity.1
index ee943b7..48aaf19 100644
--- a/man/man1/gdal_proximity.1
+++ b/man/man1/gdal_proximity.1
@@ -1,4 +1,4 @@
-.TH "gdal_proximity" 1 "Sun Jul 3 2016" "GDAL" \" -*- nroff -*-
+.TH "gdal_proximity" 1 "Thu Jul 7 2016" "GDAL" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
diff --git a/man/man1/gdal_rasterize.1 b/man/man1/gdal_rasterize.1
index 60508cc..97e137c 100644
--- a/man/man1/gdal_rasterize.1
+++ b/man/man1/gdal_rasterize.1
@@ -1,4 +1,4 @@
-.TH "gdal_rasterize" 1 "Sun Jul 3 2016" "GDAL" \" -*- nroff -*-
+.TH "gdal_rasterize" 1 "Thu Jul 7 2016" "GDAL" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
diff --git a/man/man1/gdal_retile.1 b/man/man1/gdal_retile.1
index ac63041..af283e0 100644
--- a/man/man1/gdal_retile.1
+++ b/man/man1/gdal_retile.1
@@ -1,4 +1,4 @@
-.TH "gdal_retile" 1 "Sun Jul 3 2016" "GDAL" \" -*- nroff -*-
+.TH "gdal_retile" 1 "Thu Jul 7 2016" "GDAL" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
diff --git a/man/man1/gdal_sieve.1 b/man/man1/gdal_sieve.1
index 0b90f40..495d2aa 100644
--- a/man/man1/gdal_sieve.1
+++ b/man/man1/gdal_sieve.1
@@ -1,4 +1,4 @@
-.TH "gdal_sieve" 1 "Sun Jul 3 2016" "GDAL" \" -*- nroff -*-
+.TH "gdal_sieve" 1 "Thu Jul 7 2016" "GDAL" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
diff --git a/man/man1/gdal_translate.1 b/man/man1/gdal_translate.1
index b1cef92..e1356f9 100644
--- a/man/man1/gdal_translate.1
+++ b/man/man1/gdal_translate.1
@@ -1,4 +1,4 @@
-.TH "gdal_translate" 1 "Sun Jul 3 2016" "GDAL" \" -*- nroff -*-
+.TH "gdal_translate" 1 "Thu Jul 7 2016" "GDAL" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
diff --git a/man/man1/gdal_utilities.1 b/man/man1/gdal_utilities.1
index 4eeeb2e..c7dd774 100644
--- a/man/man1/gdal_utilities.1
+++ b/man/man1/gdal_utilities.1
@@ -1,4 +1,4 @@
-.TH "gdal_utilities" 1 "Sun Jul 3 2016" "GDAL" \" -*- nroff -*-
+.TH "gdal_utilities" 1 "Thu Jul 7 2016" "GDAL" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
diff --git a/man/man1/gdaladdo.1 b/man/man1/gdaladdo.1
index 6b00bb7..402cdf2 100644
--- a/man/man1/gdaladdo.1
+++ b/man/man1/gdaladdo.1
@@ -1,4 +1,4 @@
-.TH "gdaladdo" 1 "Sun Jul 3 2016" "GDAL" \" -*- nroff -*-
+.TH "gdaladdo" 1 "Thu Jul 7 2016" "GDAL" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
diff --git a/man/man1/gdalbuildvrt.1 b/man/man1/gdalbuildvrt.1
index 6d5d2e5..3c00f9d 100644
--- a/man/man1/gdalbuildvrt.1
+++ b/man/man1/gdalbuildvrt.1
@@ -1,4 +1,4 @@
-.TH "gdalbuildvrt" 1 "Sun Jul 3 2016" "GDAL" \" -*- nroff -*-
+.TH "gdalbuildvrt" 1 "Thu Jul 7 2016" "GDAL" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
diff --git a/man/man1/gdalcompare.1 b/man/man1/gdalcompare.1
index 77c7dee..f4c1ea5 100644
--- a/man/man1/gdalcompare.1
+++ b/man/man1/gdalcompare.1
@@ -1,4 +1,4 @@
-.TH "gdalcompare" 1 "Sun Jul 3 2016" "GDAL" \" -*- nroff -*-
+.TH "gdalcompare" 1 "Thu Jul 7 2016" "GDAL" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
diff --git a/man/man1/gdaldem.1 b/man/man1/gdaldem.1
index 5d9de11..97d821f 100644
--- a/man/man1/gdaldem.1
+++ b/man/man1/gdaldem.1
@@ -1,4 +1,4 @@
-.TH "gdaldem" 1 "Sun Jul 3 2016" "GDAL" \" -*- nroff -*-
+.TH "gdaldem" 1 "Thu Jul 7 2016" "GDAL" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
diff --git a/man/man1/gdalinfo.1 b/man/man1/gdalinfo.1
index abbf9e7..9698c1a 100644
--- a/man/man1/gdalinfo.1
+++ b/man/man1/gdalinfo.1
@@ -1,4 +1,4 @@
-.TH "gdalinfo" 1 "Sun Jul 3 2016" "GDAL" \" -*- nroff -*-
+.TH "gdalinfo" 1 "Thu Jul 7 2016" "GDAL" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
diff --git a/man/man1/gdallocationinfo.1 b/man/man1/gdallocationinfo.1
index 3322888..fe50612 100644
--- a/man/man1/gdallocationinfo.1
+++ b/man/man1/gdallocationinfo.1
@@ -1,4 +1,4 @@
-.TH "gdallocationinfo" 1 "Sun Jul 3 2016" "GDAL" \" -*- nroff -*-
+.TH "gdallocationinfo" 1 "Thu Jul 7 2016" "GDAL" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
diff --git a/man/man1/gdalmanage.1 b/man/man1/gdalmanage.1
index d350fe3..374ff1f 100644
--- a/man/man1/gdalmanage.1
+++ b/man/man1/gdalmanage.1
@@ -1,4 +1,4 @@
-.TH "gdalmanage" 1 "Sun Jul 3 2016" "GDAL" \" -*- nroff -*-
+.TH "gdalmanage" 1 "Thu Jul 7 2016" "GDAL" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
diff --git a/man/man1/gdalmove.1 b/man/man1/gdalmove.1
index 2da9066..bf7e16a 100644
--- a/man/man1/gdalmove.1
+++ b/man/man1/gdalmove.1
@@ -1,4 +1,4 @@
-.TH "gdalmove" 1 "Sun Jul 3 2016" "GDAL" \" -*- nroff -*-
+.TH "gdalmove" 1 "Thu Jul 7 2016" "GDAL" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
diff --git a/man/man1/gdalsrsinfo.1 b/man/man1/gdalsrsinfo.1
index c6a86c8..737e650 100644
--- a/man/man1/gdalsrsinfo.1
+++ b/man/man1/gdalsrsinfo.1
@@ -1,4 +1,4 @@
-.TH "gdalsrsinfo" 1 "Sun Jul 3 2016" "GDAL" \" -*- nroff -*-
+.TH "gdalsrsinfo" 1 "Thu Jul 7 2016" "GDAL" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
diff --git a/man/man1/gdaltindex.1 b/man/man1/gdaltindex.1
index 164db7c..5817f55 100644
--- a/man/man1/gdaltindex.1
+++ b/man/man1/gdaltindex.1
@@ -1,4 +1,4 @@
-.TH "gdaltindex" 1 "Sun Jul 3 2016" "GDAL" \" -*- nroff -*-
+.TH "gdaltindex" 1 "Thu Jul 7 2016" "GDAL" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
diff --git a/man/man1/gdaltransform.1 b/man/man1/gdaltransform.1
index 90d465f..5cbc783 100644
--- a/man/man1/gdaltransform.1
+++ b/man/man1/gdaltransform.1
@@ -1,4 +1,4 @@
-.TH "gdaltransform" 1 "Sun Jul 3 2016" "GDAL" \" -*- nroff -*-
+.TH "gdaltransform" 1 "Thu Jul 7 2016" "GDAL" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
diff --git a/man/man1/gdalwarp.1 b/man/man1/gdalwarp.1
index e58d70a..744599e 100644
--- a/man/man1/gdalwarp.1
+++ b/man/man1/gdalwarp.1
@@ -1,4 +1,4 @@
-.TH "gdalwarp" 1 "Sun Jul 3 2016" "GDAL" \" -*- nroff -*-
+.TH "gdalwarp" 1 "Thu Jul 7 2016" "GDAL" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
diff --git a/man/man1/gnm_utilities.1 b/man/man1/gnm_utilities.1
index f0c8f34..6d331ef 100644
--- a/man/man1/gnm_utilities.1
+++ b/man/man1/gnm_utilities.1
@@ -1,4 +1,4 @@
-.TH "gnm_utilities" 1 "Sun Jul 3 2016" "GDAL" \" -*- nroff -*-
+.TH "gnm_utilities" 1 "Thu Jul 7 2016" "GDAL" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
diff --git a/man/man1/gnmanalyse.1 b/man/man1/gnmanalyse.1
index 0ba7994..0304331 100644
--- a/man/man1/gnmanalyse.1
+++ b/man/man1/gnmanalyse.1
@@ -1,4 +1,4 @@
-.TH "gnmanalyse" 1 "Sun Jul 3 2016" "GDAL" \" -*- nroff -*-
+.TH "gnmanalyse" 1 "Thu Jul 7 2016" "GDAL" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
diff --git a/man/man1/gnmmanage.1 b/man/man1/gnmmanage.1
index bd799b7..2a0477f 100644
--- a/man/man1/gnmmanage.1
+++ b/man/man1/gnmmanage.1
@@ -1,4 +1,4 @@
-.TH "gnmmanage" 1 "Sun Jul 3 2016" "GDAL" \" -*- nroff -*-
+.TH "gnmmanage" 1 "Thu Jul 7 2016" "GDAL" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
diff --git a/man/man1/nearblack.1 b/man/man1/nearblack.1
index 78aedb5..b3fe43e 100644
--- a/man/man1/nearblack.1
+++ b/man/man1/nearblack.1
@@ -1,4 +1,4 @@
-.TH "nearblack" 1 "Sun Jul 3 2016" "GDAL" \" -*- nroff -*-
+.TH "nearblack" 1 "Thu Jul 7 2016" "GDAL" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
diff --git a/man/man1/ogr2ogr.1 b/man/man1/ogr2ogr.1
index 7a2ed15..48b7e4d 100644
--- a/man/man1/ogr2ogr.1
+++ b/man/man1/ogr2ogr.1
@@ -1,4 +1,4 @@
-.TH "ogr2ogr" 1 "Sun Jul 3 2016" "GDAL" \" -*- nroff -*-
+.TH "ogr2ogr" 1 "Thu Jul 7 2016" "GDAL" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
diff --git a/man/man1/ogr_utilities.1 b/man/man1/ogr_utilities.1
index d7f2bb5..70552da 100644
--- a/man/man1/ogr_utilities.1
+++ b/man/man1/ogr_utilities.1
@@ -1,4 +1,4 @@
-.TH "ogr_utilities" 1 "Sun Jul 3 2016" "GDAL" \" -*- nroff -*-
+.TH "ogr_utilities" 1 "Thu Jul 7 2016" "GDAL" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
diff --git a/man/man1/ogrinfo.1 b/man/man1/ogrinfo.1
index 13927b2..09e66a0 100644
--- a/man/man1/ogrinfo.1
+++ b/man/man1/ogrinfo.1
@@ -1,4 +1,4 @@
-.TH "ogrinfo" 1 "Sun Jul 3 2016" "GDAL" \" -*- nroff -*-
+.TH "ogrinfo" 1 "Thu Jul 7 2016" "GDAL" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
diff --git a/man/man1/ogrlineref.1 b/man/man1/ogrlineref.1
index 7505ed7..fffeaf1 100644
--- a/man/man1/ogrlineref.1
+++ b/man/man1/ogrlineref.1
@@ -1,4 +1,4 @@
-.TH "ogrlineref" 1 "Sun Jul 3 2016" "GDAL" \" -*- nroff -*-
+.TH "ogrlineref" 1 "Thu Jul 7 2016" "GDAL" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
diff --git a/man/man1/ogrtindex.1 b/man/man1/ogrtindex.1
index 6ffdeea..70ec006 100644
--- a/man/man1/ogrtindex.1
+++ b/man/man1/ogrtindex.1
@@ -1,4 +1,4 @@
-.TH "ogrtindex" 1 "Sun Jul 3 2016" "GDAL" \" -*- nroff -*-
+.TH "ogrtindex" 1 "Thu Jul 7 2016" "GDAL" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
diff --git a/man/man1/pct2rgb.1 b/man/man1/pct2rgb.1
index c608c78..3470311 100644
--- a/man/man1/pct2rgb.1
+++ b/man/man1/pct2rgb.1
@@ -1,4 +1,4 @@
-.TH "pct2rgb" 1 "Sun Jul 3 2016" "GDAL" \" -*- nroff -*-
+.TH "pct2rgb" 1 "Thu Jul 7 2016" "GDAL" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
diff --git a/man/man1/rgb2pct.1 b/man/man1/rgb2pct.1
index eadeed7..207a72a 100644
--- a/man/man1/rgb2pct.1
+++ b/man/man1/rgb2pct.1
@@ -1,4 +1,4 @@
-.TH "rgb2pct" 1 "Sun Jul 3 2016" "GDAL" \" -*- nroff -*-
+.TH "rgb2pct" 1 "Thu Jul 7 2016" "GDAL" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
diff --git a/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp b/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp
index b265bd0..4394aef 100644
--- a/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp
+++ b/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp
@@ -1,5 +1,5 @@
 /******************************************************************************
- * $Id: ogrwfsdatasource.cpp 33713 2016-03-12 17:41:57Z goatbar $
+ * $Id: ogrwfsdatasource.cpp 34572 2016-07-06 18:31:02Z rouault $
  *
  * Project:  WFS Translator
  * Purpose:  Implements OGRWFSDataSource class
@@ -37,7 +37,7 @@
 #include "swq.h"
 #include "ogr_p.h"
 
-CPL_CVSID("$Id: ogrwfsdatasource.cpp 33713 2016-03-12 17:41:57Z goatbar $");
+CPL_CVSID("$Id: ogrwfsdatasource.cpp 34572 2016-07-06 18:31:02Z rouault $");
 
 #define DEFAULT_BASE_START_INDEX     0
 #define DEFAULT_PAGE_SIZE            100
@@ -1484,7 +1484,7 @@ int OGRWFSDataSource::Open( const char * pszFilename, int bUpdateIn,
                     for( CPLXMLNode* psKeyword = psKeywords->psChild;
                          psKeyword != NULL; psKeyword = psKeyword->psNext )
                     {
-                        if( psKeyword->eType == CXT_Element )
+                        if( psKeyword->eType == CXT_Element && psKeyword->psChild != NULL )
                         {
                             poLayer->SetMetadataItem(CPLSPrintf("KEYWORD_%d", nKeywordCounter),
                                                      psKeyword->psChild->pszValue);

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-grass/gdal.git



More information about the Pkg-grass-devel mailing list