From f35199daa9488fac2d3ee5f6e51239b4c7a30e0c Mon Sep 17 00:00:00 2001 From: Barak Itkin Date: Sat, 2 Jun 2012 12:08:24 +0300 Subject: [PATCH] Allow freeing a P2trCDT object with freeing it's P2trMesh object --- refine/cdt.c | 11 +++++++++-- refine/cdt.h | 6 ++++-- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/refine/cdt.c b/refine/cdt.c index dbf5bc7..3814509 100644 --- a/refine/cdt.c +++ b/refine/cdt.c @@ -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); diff --git a/refine/cdt.h b/refine/cdt.h index f66723a..8a06ad9 100644 --- a/refine/cdt.h +++ b/refine/cdt.h @@ -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 -- 2.50.1