Index: cdt.c =================================================================== --- cdt.c (revision 17956) +++ cdt.c (revision 17957) @@ -244,15 +244,18 @@ void cdt_init(cdt_t *cdt, coord_t bbox_x1, coord_t bbox_y1, coord_t bbox_x2, coord_t bbox_y2) { - vtpoint_init(&cdt->points); cdt->points.elem_constructor = vtpoint_constructor; cdt->points.elem_destructor = vtpoint_destructor; - vtedge_init(&cdt->edges); + cdt->points.elem_copy = NULL; + vtpoint_init(&cdt->points); cdt->edges.elem_constructor = vtedge_constructor; cdt->edges.elem_destructor = vtedge_destructor; - vttriangle_init(&cdt->triangles); + cdt->edges.elem_copy = NULL; + vtedge_init(&cdt->edges); cdt->triangles.elem_constructor = vttriangle_constructor; cdt->triangles.elem_destructor = vttriangle_destructor; + cdt->triangles.elem_copy = NULL; + vttriangle_init(&cdt->triangles); init_bbox(cdt, bbox_x1, bbox_y1, bbox_x2, bbox_y2); } Index: edge.h =================================================================== --- edge.h (revision 17956) +++ edge.h (revision 17957) @@ -50,6 +50,7 @@ #define GVT_SET_NEW_BYTES_TO 0 #define GVT_ELEM_CONSTRUCTOR #define GVT_ELEM_DESTRUCTOR +#define GVT_ELEM_COPY #include #define GVT_REALLOC(vect, ptr, size) realloc(ptr, size) Index: point.h =================================================================== --- point.h (revision 17956) +++ point.h (revision 17957) @@ -49,6 +49,7 @@ #define GVT_SET_NEW_BYTES_TO 0 #define GVT_ELEM_CONSTRUCTOR #define GVT_ELEM_DESTRUCTOR +#define GVT_ELEM_COPY #include #define GVT_REALLOC(vect, ptr, size) realloc(ptr, size) Index: triangle.h =================================================================== --- triangle.h (revision 17956) +++ triangle.h (revision 17957) @@ -49,6 +49,7 @@ #define GVT_SET_NEW_BYTES_TO 0 #define GVT_ELEM_CONSTRUCTOR #define GVT_ELEM_DESTRUCTOR +#define GVT_ELEM_COPY #include #define GVT_REALLOC(vect, ptr, size) realloc(ptr, size)