bug4088fix.diff

proposed (untested) fix - Martin Dobias, 2011-07-15 01:45 AM

Download (1.24 KB)

View differences:

src/core/pal/layer.cpp
262 262

  
263 263
    // break the (possibly multi-part) geometry into simple geometries
264 264
    LinkedList <const GEOSGeometry*> *simpleGeometries = unmulti( the_geom );
265
    if ( simpleGeometries == NULL ) // unmulti() failed?
266
    {
267
      modMutex->unlock();
268
      throw InternalException::UnknownGeometry();
269
    }
265 270

  
266 271
    while ( simpleGeometries->size() > 0 )
267 272
    {
......
277 282
      int type = GEOSGeomTypeId( geom );
278 283

  
279 284
      if ( type != GEOS_POINT && type != GEOS_LINESTRING && type != GEOS_POLYGON )
285
      {
286
        modMutex->unlock();
280 287
        throw InternalException::UnknownGeometry();
288
      }
281 289

  
282 290
      FeaturePart* fpart = new FeaturePart( f, geom );
283 291

  
src/core/pal/util.cpp
231 231
          final_queue->push_back( geom );
232 232
          break;
233 233
        default:
234
          throw InternalException::UnknownGeometry();
234
          delete final_queue;
235
          final_queue = NULL;
235 236
      }
236 237
    }
237 238
    delete queue;