Summary of Autodesk changes made to GDAL ============================================================ TUX147-WCW09: Fix Proj4 runtime error With CPL and OGR, I had to make a few minor changes to the makefiles since they were both generating the same PDB - gdal.pdb - in the same folder. Now they create cpl.pbd and ogr.pdb in the correct folders. //MgDev/Oem/gdal-1.3.0/nmake.opt - allow custom name for PDB file //MgDev/Oem/gdal-1.3.0/ogr/Makefile //MgDev/Oem/gdal-1.3.0/port/makefile.vc - set custom name for PDB file ============================================================ TUX147-WCW10: Fix memory leaks in CPL CPL (used by Proj4) allocates some static data, but exposed no method to clean it up. I added a CPLCleanupTLS() method which does this. Note that there already was a CPLCleanupTLS() method defined (which took a void* as input). This was being used internally (with the PThread platform) to cleanup an array. I renamed this one to CPLFreeTLS(), since I'd like to expose the CPLCleanupTLS() method. Note that CPL has implementations for three "platforms" - Win32, PThread, and a default stub. I took these into account when writing the cleanup method: - The stub cleanup method only needs to delete data in the static array. - The PThread implementation already appears to do cleanup via CPLFreeTLS(). - The Win32 implementation needs to delete data in the static array, and free the thread-local-storage entry (via TLSFree). The CPLFinderClean() method had a bug. If it was called without the finder having been initialized, then it would end up getting initialized during cleanup, resulting in a few leaked allocations. The fix is to only do the cleanup if the finder has been initialized. //MgDev/Oem/gdal-1.3.0/port/cpl_findfile.cpp - fix leak in CPLFinderClean //MgDev/Oem/gdal-1.3.0/port/cpl_multiproc.cpp //MgDev/Oem/gdal-1.3.0/port/cpl_multiproc.h - add CPLCleanupTLS method ============================================================ Tux149-TIS03: Change exec bit on configure scripts for gdal and proj Changed the executable flag (in Perforce) for the configure scripts of gdal and proj. This avoids the step of having to change file attributes before building those two libraries. //MgDev/Oem/gdal-1.3.0/configure#1 edit ============================================================ TUX150-BND04: Add support for additional projections This submission adds support for additional projection systems. The following additional projection systems were added: AE - Abbreviation of Albers_Conic_Equal_Area LCC - Abbreviation of Lambert Conformal Conic Lambert Conformal Conic - NEW projection Miller - Abbreviation of Miller_Cylindrical Swiss - Abbreviation of Swiss_Oblique_Cylindrical TM - Abbreviation of Transverse_Mercator Currently, the EQUAL() macro does a simple case insensitive string compare with the projection system strings. This needs to be enhanced to do the comparison while also ignoring white space, "-", "_" and "," characters so that more matches are found. The following should all be considered equal, but currently are not: Transverse_Mercator Transverse-Mercator Transverse Mercator TransverseMercator This improved string matching should be addressed in a future submission. //MgDev/Oem/gdal-1.3.0/ogr/ogr_srs_api.h#1 edit //MgDev/Oem/gdal-1.3.0/ogr/ogr_srs_proj4.cpp#1 edit //MgDev/Oem/gdal-1.3.0/ogr/ogrspatialreference.cpp#1 edit ============================================================ TUX157-TIS03 Added "UTM" as abbreviation for Transverse Mercator //MgDev/Oem/gdal-1.3.0/ogr/ogr_srs_api.h#2 edit //MgDev/Oem/gdal-1.3.0/ogr/ogr_srs_proj4.cpp#2 edit ============================================================