]> granicus.if.org Git - poly2tri-c/commitdiff
Allow freeing a P2trCDT object with freeing it's P2trMesh object
authorBarak Itkin <lightningismyname@gmail.com>
Sat, 2 Jun 2012 09:08:24 +0000 (12:08 +0300)
committerBarak Itkin <lightningismyname@gmail.com>
Sat, 2 Jun 2012 09:08:24 +0000 (12:08 +0300)
refine/cdt.c
refine/cdt.h

index dbf5bc747ca4bcb3607fec8a43242e03e8bb8601..381450931ce5595d6e750b010a6baec236d863e5 100644 (file)
@@ -173,10 +173,17 @@ p2tr_cdt_new (P2tCDT *cdt)
 }
 
 void
-p2tr_cdt_free (P2trCDT* self)
+p2tr_cdt_free (P2trCDT *self)
+{
+  p2tr_cdt_free_full (self, TRUE);
+}
+
+void
+p2tr_cdt_free_full (P2trCDT* self, gboolean clear_mesh)
 {
   p2tr_pslg_free (self->outline);
-  p2tr_mesh_clear (self->mesh);
+  if (clear_mesh)
+    p2tr_mesh_clear (self->mesh);
   p2tr_mesh_unref (self->mesh);
 
   g_slice_free (P2trCDT, self);
index f66723a461a4ce160ee86c1961a612346a748e14..8a06ad98f033d1a3270bbc1d636e32cc2538c6a5 100644 (file)
@@ -51,9 +51,11 @@ void        p2tr_cdt_validate_unused (P2trCDT* self);
  * @param cdt A P2tCDT Constrained Delaunay Triangulation
  * @return A P2trCDT Constrained Delaunay Triangulation
  */
-P2trCDT*    p2tr_cdt_new  (P2tCDT *cdt);
+P2trCDT*    p2tr_cdt_new       (P2tCDT *cdt);
 
-void        p2tr_cdt_free (P2trCDT *cdt);
+void        p2tr_cdt_free      (P2trCDT *cdt);
+
+void        p2tr_cdt_free_full (P2trCDT *cdt, gboolean clear_mesh);
 
 /**
  * Test whether there is a path from the point @ref p to the edge @e