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

Function binding_set_edge

src/cypher/cypher.c:2482–2497  ·  view source on GitHub ↗

Set an edge variable in a binding */

Source from the content-addressed store, hash-verified

2480
2481/* Set an edge variable in a binding */
2482static void binding_set_edge(binding_t *b, const char *var, const cbm_edge_t *edge) {
2483 /* Check existing — free old fields first */
2484 for (int i = 0; i < b->edge_var_count; i++) {
2485 if (strcmp(b->edge_var_names[i], var) == 0) {
2486 edge_fields_free(&b->edge_vars[i]);
2487 edge_deep_copy(&b->edge_vars[i], edge);
2488 return;
2489 }
2490 }
2491 if (b->edge_var_count >= CYP_MAX_EDGE_VARS) {
2492 return;
2493 }
2494 b->edge_var_names[b->edge_var_count] = var; /* not owned — points to AST string */
2495 edge_deep_copy(&b->edge_vars[b->edge_var_count], edge);
2496 b->edge_var_count++;
2497}
2498
2499/* Free all deep-copied nodes and edges in a binding */
2500static 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