]> granicus.if.org Git - postgis/commitdiff
Don't let temporary collection leak in lwgeom_to_x3d3 (actually do, but sligthly...
authorSandro Santilli <strk@keybit.net>
Wed, 6 Jul 2011 07:42:18 +0000 (07:42 +0000)
committerSandro Santilli <strk@keybit.net>
Wed, 6 Jul 2011 07:42:18 +0000 (07:42 +0000)
git-svn-id: http://svn.osgeo.org/postgis/trunk@7602 b70326c6-7e19-0410-871a-916f4a2858ee

liblwgeom/lwout_x3d.c

index ff99aee70fd4c9fd008f25d087b551e749b5c076..ed9c37def49e2e187ce7533cdc78f8818a09c73c 100644 (file)
@@ -59,10 +59,16 @@ lwgeom_to_x3d3(const LWGEOM *geom, char *srs, int precision, int opts, const cha
                return asx3d3_line((LWLINE*)geom, srs, precision, opts, defid);\r
 \r
        case POLYGONTYPE:\r
+       {\r
                /** We might change this later, but putting a polygon in an indexed face set\r
                * seems like the simplest way to go so treat just like a mulitpolygon\r
                */\r
-               return asx3d3_multi((LWCOLLECTION*)lwgeom_as_multi(geom), srs, precision, opts, defid);\r
+               LWCOLLECTION *tmp = (LWCOLLECTION*)lwgeom_as_multi(geom);\r
+               char *ret = asx3d3_multi(tmp, srs, precision, opts, defid);\r
+               /* See http://trac.osgeo.org/postgis/ticket/1104 about problems with lwgeom_clone */\r
+               lwcollection_release(tmp);\r
+               return ret;\r
+       }\r
 \r
        case TRIANGLETYPE:\r
                return asx3d3_triangle((LWTRIANGLE*)geom, srs, precision, opts, defid);\r