bug4088fix.diff
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; |