if ( lwt_be_ExistsCoincidentNode(topo, pt) ) /*x*/
{
LWDEBUG(1, "lwt_NewEdgesSplit: lwt_be_ExistsCoincidentNode returned");
+ _lwt_release_edges(*oldedge, 1);
lwerror("SQL/MM Spatial exception - coincident node");
return NULL;
}
split = lwgeom_split((LWGEOM*)(*oldedge)->geom, (LWGEOM*)pt);
if ( ! split )
{
+ _lwt_release_edges(*oldedge, 1);
lwerror("could not split edge by point ?");
return NULL;
}
split_col = lwgeom_as_lwcollection(split);
if ( ! split_col ) {
+ _lwt_release_edges(*oldedge, 1);
lwgeom_free(split);
lwerror("lwgeom_as_lwcollection returned NULL");
return NULL;
}
if (split_col->ngeoms < 2) {
+ _lwt_release_edges(*oldedge, 1);
lwgeom_free(split);
lwerror("SQL/MM Spatial exception - point not on edge");
return NULL;
node.geom = pt;
if ( ! lwt_be_insertNodes(topo, &node, 1) )
{
- _lwt_release_edges(oldedge, 1);;
+ _lwt_release_edges(oldedge, 1);
lwcollection_free(split_col);
lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
return -1;
}
if (node.node_id == -1) {
/* should have been set by backend */
- _lwt_release_edges(oldedge, 1);;
+ _lwt_release_edges(oldedge, 1);
lwcollection_free(split_col);
lwerror("Backend coding error: "
"insertNodes callback did not return node_id");
/* Insert the new edge */
newedge1.edge_id = lwt_be_getNextEdgeId(topo);
if ( newedge1.edge_id == -1 ) {
- _lwt_release_edges(oldedge, 1);;
+ _lwt_release_edges(oldedge, 1);
lwcollection_free(split_col);
lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
return -1;
newedge1.geom = lwgeom_as_lwline(newedge_geom);
/* lwgeom_split of a line should only return lines ... */
if ( ! newedge1.geom ) {
- _lwt_release_edges(oldedge, 1);;
+ _lwt_release_edges(oldedge, 1);
lwcollection_free(split_col);
lwerror("first geometry in lwgeom_split output is not a line");
return -1;
}
ret = lwt_be_insertEdges(topo, &newedge1, 1);
if ( ret == -1 ) {
- _lwt_release_edges(oldedge, 1);;
+ _lwt_release_edges(oldedge, 1);
lwcollection_free(split_col);
lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
return -1;
} else if ( ret == 0 ) {
- _lwt_release_edges(oldedge, 1);;
+ _lwt_release_edges(oldedge, 1);
lwcollection_free(split_col);
lwerror("Insertion of split edge failed (no reason)");
return -1;
updedge.geom = lwgeom_as_lwline(oldedge_geom);
/* lwgeom_split of a line should only return lines ... */
if ( ! updedge.geom ) {
- _lwt_release_edges(oldedge, 1);;
+ _lwt_release_edges(oldedge, 1);
lwcollection_free(split_col);
lwerror("second geometry in lwgeom_split output is not a line");
return -1;
&updedge, LWT_COL_EDGE_GEOM|LWT_COL_EDGE_NEXT_LEFT|LWT_COL_EDGE_END_NODE,
NULL, 0);
if ( ret == -1 ) {
- _lwt_release_edges(oldedge, 1);;
+ _lwt_release_edges(oldedge, 1);
lwcollection_free(split_col);
lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
return -1;
} else if ( ret == 0 ) {
- _lwt_release_edges(oldedge, 1);;
+ _lwt_release_edges(oldedge, 1);
lwcollection_free(split_col);
lwerror("Edge being splitted (%d) disappeared during operations?", oldedge->edge_id);
return -1;
} else if ( ret > 1 ) {
- _lwt_release_edges(oldedge, 1);;
+ _lwt_release_edges(oldedge, 1);
lwcollection_free(split_col);
lwerror("More than a single edge found with id %d !", oldedge->edge_id);
return -1;
&updedge, LWT_COL_EDGE_NEXT_RIGHT,
&excedge, LWT_COL_EDGE_EDGE_ID);
if ( ret == -1 ) {
- _lwt_release_edges(oldedge, 1);;
+ _lwt_release_edges(oldedge, 1);
lwcollection_free(split_col);
lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
return -1;
&updedge, LWT_COL_EDGE_NEXT_LEFT,
&excedge, LWT_COL_EDGE_EDGE_ID);
if ( ret == -1 ) {
- _lwt_release_edges(oldedge, 1);;
+ _lwt_release_edges(oldedge, 1);
lwcollection_free(split_col);
lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
return -1;
/* Update TopoGeometries composition */
ret = lwt_be_updateTopoGeomEdgeSplit(topo, oldedge->edge_id, newedge1.edge_id, -1);
if ( ! ret ) {
- _lwt_release_edges(oldedge, 1);;
+ _lwt_release_edges(oldedge, 1);
lwcollection_free(split_col);
lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
return -1;
}
- _lwt_release_edges(oldedge, 1);;
+ _lwt_release_edges(oldedge, 1);
lwcollection_free(split_col);
/* return new node id */
node.geom = pt;
if ( ! lwt_be_insertNodes(topo, &node, 1) )
{
- _lwt_release_edges(oldedge, 1);;
+ _lwt_release_edges(oldedge, 1);
lwcollection_free(split_col);
lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
return -1;
}
if (node.node_id == -1) {
- _lwt_release_edges(oldedge, 1);;
+ _lwt_release_edges(oldedge, 1);
lwcollection_free(split_col);
/* should have been set by backend */
lwerror("Backend coding error: "
seledge.edge_id = edge;
ret = lwt_be_deleteEdges(topo, &seledge, LWT_COL_EDGE_EDGE_ID);
if ( ret == -1 ) {
- _lwt_release_edges(oldedge, 1);;
+ _lwt_release_edges(oldedge, 1);
lwcollection_free(split_col);
lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
return -1;
/* Get new edges identifiers */
newedges[0].edge_id = lwt_be_getNextEdgeId(topo);
if ( newedges[0].edge_id == -1 ) {
- _lwt_release_edges(oldedge, 1);;
+ _lwt_release_edges(oldedge, 1);
lwcollection_free(split_col);
lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
return -1;
}
newedges[1].edge_id = lwt_be_getNextEdgeId(topo);
if ( newedges[1].edge_id == -1 ) {
- _lwt_release_edges(oldedge, 1);;
+ _lwt_release_edges(oldedge, 1);
lwcollection_free(split_col);
lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
return -1;
newedges[0].geom = lwgeom_as_lwline(oldedge_geom);
/* lwgeom_split of a line should only return lines ... */
if ( ! newedges[0].geom ) {
- _lwt_release_edges(oldedge, 1);;
+ _lwt_release_edges(oldedge, 1);
lwcollection_free(split_col);
lwerror("first geometry in lwgeom_split output is not a line");
return -1;
newedges[1].geom = lwgeom_as_lwline(newedge_geom);
/* lwgeom_split of a line should only return lines ... */
if ( ! newedges[1].geom ) {
- _lwt_release_edges(oldedge, 1);;
+ _lwt_release_edges(oldedge, 1);
lwcollection_free(split_col);
lwerror("second geometry in lwgeom_split output is not a line");
return -1;
/* Insert both new edges */
ret = lwt_be_insertEdges(topo, newedges, 2);
if ( ret == -1 ) {
- _lwt_release_edges(oldedge, 1);;
+ _lwt_release_edges(oldedge, 1);
lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
return -1;
} else if ( ret == 0 ) {
- _lwt_release_edges(oldedge, 1);;
+ _lwt_release_edges(oldedge, 1);
lwcollection_free(split_col);
lwerror("Insertion of split edge failed (no reason)");
return -1;
&updedge, LWT_COL_EDGE_NEXT_RIGHT,
NULL, 0);
if ( ret == -1 ) {
- _lwt_release_edges(oldedge, 1);;
+ _lwt_release_edges(oldedge, 1);
lwcollection_free(split_col);
lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
return -1;
&updedge, LWT_COL_EDGE_NEXT_RIGHT,
NULL, 0);
if ( ret == -1 ) {
- _lwt_release_edges(oldedge, 1);;
+ _lwt_release_edges(oldedge, 1);
lwcollection_free(split_col);
lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
return -1;
&updedge, LWT_COL_EDGE_NEXT_LEFT,
NULL, 0);
if ( ret == -1 ) {
- _lwt_release_edges(oldedge, 1);;
+ _lwt_release_edges(oldedge, 1);
lwcollection_free(split_col);
lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
return -1;
&updedge, LWT_COL_EDGE_NEXT_LEFT,
NULL, 0);
if ( ret == -1 ) {
- _lwt_release_edges(oldedge, 1);;
+ _lwt_release_edges(oldedge, 1);
lwcollection_release(split_col);
lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
return -1;
/* Update TopoGeometries composition */
ret = lwt_be_updateTopoGeomEdgeSplit(topo, oldedge->edge_id, newedges[0].edge_id, newedges[1].edge_id);
if ( ! ret ) {
- _lwt_release_edges(oldedge, 1);;
+ _lwt_release_edges(oldedge, 1);
lwcollection_free(split_col);
lwerror("Backend error: %s", lwt_be_lastErrorMessage(topo->be_iface));
return -1;
}
- _lwt_release_edges(oldedge, 1);;
+ _lwt_release_edges(oldedge, 1);
lwcollection_free(split_col);
/* return new node id */
int num_node_edges;
LWT_ISO_EDGE *edges;
LWT_ISO_EDGE *e1 = NULL;
- LWT_ISO_EDGE *e2 = NULL;;
+ LWT_ISO_EDGE *e2 = NULL;
LWT_ISO_EDGE newedge, updedge, seledge;
int nedges, i;
int e1freenode;