[gdal-dev] [gdal 3.12beta1] OGRFeature::GetDefnRef now returns a const pointer

Even Rouault even.rouault at spatialys.com
Tue Oct 21 10:08:15 PDT 2025


> Encapsulating the object into a wrapper when returning the object to a 
> language with automatic GC.
>
> If I don't do this, I will have to keep a reference to the layer or 
> the feature. Or clone it.

I see different options:

1) we revert that change. Downside: users may believe that they can 
modify the OGRFeatureDefn* instance, which can potentially cause crashes 
if they are OGRFeature* based on it (that was the rationale for 
const'ifying)

2) we make OGRFeatureDefn::Reference() and Dereference() const methods. 
But that's a clear violation of const semantics, given that we have a 
GetRefCount() and thus the observable state is modified, so not 
something I'd be super keen doing

3) the caller of OGRFeature::GetDefnRef() takes responsibility for 
const_cast'ing the const pointer to a non-const pointer. For the purpose 
of just modifying the ref counter, that's fine.

-- 
http://www.spatialys.com
My software is free, but my time generally not.



More information about the gdal-dev mailing list