Hi,

The 2 calls to Stat() are not done in the proper order indeed. Should be fixed 
per https://
trac.osgeo.org/gdal/ticket/7070

Even

> I recently stepped up some code to use Visual Studio 2015 and calling
> GDALDataset::startTransaction(true) seems to fail for the FileGDB driver. I
> tracked the issue down to cpl_conv's CPLCopyTree method:
> 
> In Visual Studio 2012 the first call to VSIStatL(pszOldPath, &sStatBuf) sets
> sStatBuf so st_mode has the flags for a directory. The second call
> VSIStatL(pszNewPath, &sStatBuf) fails internally because the new path
> doesn't exist, and sStatBuf is remained untouched from the old path's call
> (_wstat64 doesn't reset sStatBuf). This worked in favor for the next line
> in CPLCopyTree since sStatBuf.st_mode is checked to see if the new path is
> a directory (which it says yes because the old path is what set sStatBuf).
> 
> In Visual Studio 2015 _wstat64 clears out sStatBuf. So when VSIStatL is
> called on pszNewPath, sStatBuf.st_mode doesn't show that it's a directory
> and fails out saying "Unrecognized filesystem object : c:\temp\testing.gdb"
> 
> I'm thinking VSIStatL should check for a -1 response from _wstat64,
> indicating the folder doesn't exist and VSI_ISDIR should only check the old
> path's sStatBuf to see if it's a folder and not the new path (since it
> doesn't exist at this time). Thoughts?
> 
> 
> 
> --
> Sent from: http://osgeo-org.1560.x6.nabble.com/GDAL-Dev-f3742093.html
> _______________________________________________
> gdal-dev mailing list
> gdal-dev@lists.osgeo.org
> https://lists.osgeo.org/mailman/listinfo/gdal-dev


-- 
Spatialys - Geospatial professional services
http://www.spatialys.com
_______________________________________________
gdal-dev mailing list
gdal-dev@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/gdal-dev

Reply via email to