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