MCPcopy Create free account
hub / github.com/DeusData/codebase-memory-mcp / binding_set_edge

Function binding_set_edge

src/cypher/cypher.c:2281–2296  ·  view source on GitHub ↗

Set an edge variable in a binding */

Source from the content-addressed store, hash-verified

2279
2280/* Set an edge variable in a binding */
2281static void binding_set_edge(binding_t *b, const char *var, const cbm_edge_t *edge) {
2282 /* Check existing — free old fields first */
2283 for (int i = 0; i < b->edge_var_count; i++) {
2284 if (strcmp(b->edge_var_names[i], var) == 0) {
2285 edge_fields_free(&b->edge_vars[i]);
2286 edge_deep_copy(&b->edge_vars[i], edge);
2287 return;
2288 }
2289 }
2290 if (b->edge_var_count >= CYP_MAX_EDGE_VARS) {
2291 return;
2292 }
2293 b->edge_var_names[b->edge_var_count] = var; /* not owned — points to AST string */
2294 edge_deep_copy(&b->edge_vars[b->edge_var_count], edge);
2295 b->edge_var_count++;
2296}
2297
2298/* Free all deep-copied nodes and edges in a binding */
2299static void binding_free(binding_t *b) {

Callers 2

process_edgesFunction · 0.85

Calls 2

edge_fields_freeFunction · 0.85
edge_deep_copyFunction · 0.85

Tested by

no test coverage detected