[geos-devel] When do topology functions return NULL?

Sandro Santilli strk at kbt.io
Wed Jul 18 08:18:16 PDT 2018


On Wed, Jul 18, 2018 at 09:51:07AM -0400, Andrew Hershberger wrote:
> GEOSwift is a Swift wrapper for geos's thread-safe C interface. A recent
> commit (
> https://github.com/GEOSwift/GEOSwift/commit/6006a7493dc040909903559d6b49cfe5d0070ecc)
> added NULL checks for the return values of the topology operations, but
> from inspection of the geos code, it seems like the topology operations
> only return NULL if the handle is NULL or uninitialized, which our wrapper
> prevents. We're using version 3.5.0. Do these topology operations return
> NULL in any other cases?

My inspection shows NULL is returned on exception. Example code:

Geometry *
GEOSUnion_r(GEOSContextHandle_t extHandle, const Geometry *g1, const Geometry *g2)
{
...
  try
  {
     return return g1->Union(g2);
  }
  catch (...)
  {
    // no return here
  }
  return NULL; // <--- on exception we get here
}
 

--strk;


More information about the geos-devel mailing list