[gdal-dev] postgis OGRFeature crash QGIS
Even Rouault
even.rouault at spatialys.com
Wed Oct 7 04:18:22 PDT 2015
Le mercredi 07 octobre 2015 12:51:05, Luca Delucchi a écrit :
> Hi everybody,
>
> I'm fixing some problem with a QGIS plugin, and I'm fighting with a
> problem with postgis OGRFeature that it crash QGIS for a
> __GI___libc_free problem. The log of gdb is available here [0].
>
> The error appear at the end of write_layer_single function (line 204)
> during the return of this file [1]. I tried to fix in several way, but
> I'm not able to understand. The error appear only with
> postgresql/postgis datasource, not with other.
>
> Thanks a lot for any suggestion
Luca,
I'm not completely sure if this is the reason, but there's at least something
to correct related to the use of:
self.feat_defn.AddFieldDefn(style_field)
Quoting OGRFeatureDefn::AddFieldDefn() documentation
http://gdal.org/classOGRFeatureDefn.html#a40e681d8464b42f1a1fac655f16ac3dd :
"To add a new field definition to a layer definition, do not use this function
directly, but use OGRLayer::CreateField() instead."
Hum actually looking more closely, I think the issue is that you modify the
layer definition after having accumulated features in the "features"
dictionary.
Still quoting OGRFeatureDefn::AddFieldDefn() documentation
"This method should only be called while there are no OGRFeature objects in
existance based on this OGRFeatureDefn."
So you should probably call outLayer.CreateField() before reading the postgres
features.
Even
--
Spatialys - Geospatial professional services
http://www.spatialys.com
More information about the gdal-dev
mailing list