if ( !initialize_link( err_p ,
o_l ,
EPSILON ) ) {
+
+ /* Cleanup allocated resources */
+ FREE_AND_NULL(o_l);
+ FREE_AND_NULL(k_s);
+ FREE_AND_NULL(r_p);
+
+ PAGC_DESTROY_2D_ARRAY(rules -> Trie,NODE,MAXINSYM);
+ rules -> Trie = NULL;
+
+ rules_free(rules);
+ FREE_AND_NULL(rules);
+
return NULL ;
}
static SPIPlanPtr plan = NULL;
// prepare
- if ( ! plan ) {
- sql = "SELECT id,srid,precision,null::geometry"
- " FROM topology.topology "
- "WHERE name = $1::varchar";
- argtypes[0] = CSTRINGOID;
- plan = SPI_prepare(sql, 1, argtypes);
- if ( ! plan )
- {
- cberror(be, "unexpected return (%d) from query preparation: %s",
- SPI_result, sql);
- return NULL;
- }
- SPI_keepplan(plan);
- // SPI_freeplan to free, eventually
+ sql = "SELECT id,srid,precision,null::geometry"
+ " FROM topology.topology "
+ "WHERE name = $1::varchar";
+ argtypes[0] = CSTRINGOID;
+ plan = SPI_prepare(sql, 1, argtypes);
+ if ( ! plan )
+ {
+ cberror(be, "unexpected return (%d) from query preparation: %s",
+ SPI_result, sql);
+ return NULL;
}
+ SPI_keepplan(plan);
+ // SPI_freeplan to free, eventually
// execute
values[0] = CStringGetDatum(name);