Hi, I have such error: the GDAL compiled with VS2010-VS2013 in s57 driver loose all additional fields values. But the same code compiled with gcc or previous VS works fine. I found the root of problems here (ogr\ogrsf_frmts\s57\s57reader.cpp:932):
const char *pszAcronym = poRegistrar->GetAttrAcronym(nAttrId); iField = poFeature->GetDefnRef()->GetFieldIndex(pszAcronym); The pszAcronym always empty. The problem comes from this function (ogr\ogrsf_frmts\s57\s57.h:140): const char *GetAttrAcronym( int i ) { return GetAttrInfo(i) == NULL ? NULL : aoAttrInfos[i]->osAcronym; } It seems to me that during execution this function I have |situation when||c_str()|result becomes invalid (the|std::string|is destroyed or a non-const member function of the string is called). If I change function const char *GetAttrAcronym( int i ) { return GetAttrInfo(i) == NULL ? NULL : aoAttrInfos[i]->osAcronym.c_str(); } the problem gone. So I need some confirmation/verification my ideas. If I'm right, I can make changes to s57 driver. Best regards, Dmitry --- Это сообщение свободно от вирусов и вредоносного ПО благодаря защите от вирусов avast! http://www.avast.com
_______________________________________________ gdal-dev mailing list gdal-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/gdal-dev