extern void lwfree_line (LWLINE *line);
extern void lwfree_polygon (LWPOLY *poly);
extern void lwfree_pointarray(POINTARRAY *pa);
-
+extern void lwfree_mpoint (LWMPOINT *mpt);
+extern void lwfree_mline (LWMLINE *mline);
+extern void lwfree_mpolygon (LWMPOLY *mpoly);
+extern void lwfree_collection (LWCOLLECTION *col);
/****************************************************************
* utility
}
return 1;
}
+
+
+void lwfree_collection(LWCOLLECTION *col)
+{
+ int i;
+ if( col->bbox )
+ {
+ lwfree(col->bbox);
+ }
+ for ( i = 0; i < col->ngeoms; i++ )
+ {
+ if( col->geoms[i] ) {
+ switch( TYPE_GETTYPE(col->geoms[i]->type) )
+ {
+ case POINTTYPE:
+ lwfree_point((LWPOINT*)col->geoms[i]);
+ break;
+ case LINETYPE:
+ lwfree_line((LWLINE*)col->geoms[i]);
+ break;
+ case POLYGONTYPE:
+ lwfree_polygon((LWPOLY*)col->geoms[i]);
+ break;
+ case MULTIPOINTTYPE:
+ lwfree_mpoint((LWMPOINT*)col->geoms[i]);
+ break;
+ case MULTILINETYPE:
+ lwfree_mline((LWMLINE*)col->geoms[i]);
+ break;
+ case MULTIPOLYGONTYPE:
+ lwfree_mpolygon((LWMPOLY*)col->geoms[i]);
+ break;
+ case COLLECTIONTYPE:
+ lwfree_collection((LWCOLLECTION*)col->geoms[i]);
+ break;
+ }
+ }
+ }
+ if( col->geoms )
+ {
+ lwfree(col->geoms);
+ }
+ lwfree(col);
+
+};
\ No newline at end of file
return (LWGEOM *)col;
}
+
+void lwfree_mline(LWMLINE *mline)
+{
+ int i;
+ if( mline->bbox )
+ {
+ lwfree(mline->bbox);
+ }
+ for ( i = 0; i < mline->ngeoms; i++ )
+ {
+ if( mline->geoms[i] ) {
+ lwfree_line(mline->geoms[i]);
+ }
+ }
+ if( mline->geoms )
+ {
+ lwfree(mline->geoms);
+ }
+ lwfree(mline);
+
+};
return (LWGEOM *)col;
}
+
+void lwfree_mpoint(LWMPOINT *mpt)
+{
+ int i;
+ if( mpt->bbox )
+ {
+ lwfree(mpt->bbox);
+ }
+ for ( i = 0; i < mpt->ngeoms; i++ )
+ {
+ if( mpt->geoms[i] ) {
+ lwfree_point(mpt->geoms[i]);
+ }
+ }
+ if( mpt->geoms )
+ {
+ lwfree(mpt->geoms);
+ }
+ lwfree(mpt);
+
+};
\ No newline at end of file
return (LWGEOM *)col;
}
+
+void lwfree_mpolygon(LWMPOLY *mpoly)
+{
+ int i;
+ if( mpoly->bbox )
+ {
+ lwfree(mpoly->bbox);
+ }
+ for ( i = 0; i < mpoly->ngeoms; i++ )
+ {
+ if( mpoly->geoms[i] ) {
+ lwfree_polygon(mpoly->geoms[i]);
+ }
+ }
+ if( mpoly->geoms )
+ {
+ lwfree(mpoly->geoms);
+ }
+ lwfree(mpoly);
+
+};
\ No newline at end of file