GraphAddNodeR
Description
Add a new node to the graph from an r-value expression. The source is treated as a temporary value; nothing is zeroed on the caller side.
Parameters
| Name | Direction | Description |
|---|---|---|
g |
in,out | Graph handle. |
rval |
in | Node payload expression. |
Usage example (from documentation)
GraphNodeId id = GraphAddNodeR(&g, StrZ("Alpha"));Success
Returns the new node’s stable GraphNodeId (non-zero). A new slot has been allocated (or a freed slot reused with a bumped generation); live_count grows by one. The new node’s adjacency lists are empty. The source expression is untouched.
Failure
Returns 0 on allocation failure. The graph is unchanged.
Usage example (Cross-references)
Usage examples (Cross-references)
- In
Insert.h:141:
#define GraphMustAddNodeR(g, rval) \
do { \
if (!GraphAddNodeR((g), (rval))) { \
LOG_FATAL("GraphMustAddNodeR failed"); \
} \- In
Ops.c:15:
IntGraph graph = GraphInit(&alloc);
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNode node = GraphGetNode(&graph, a);- In
Ops.c:41:
IntGraph graph = GraphInit(&alloc);
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);
GraphNodeId c = GraphAddNodeR(&graph, 30);- In
Ops.c:42:
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);
GraphNodeId c = GraphAddNodeR(&graph, 30);- In
Ops.c:43:
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);
GraphNodeId c = GraphAddNodeR(&graph, 30);
GraphAddEdge(&graph, a, b);- In
Ops.c:68:
result = result && (GraphPredecessorAt(&graph, a, 0) == c);
GraphNodeId d = GraphAddNodeR(&graph, 40);
result = result && (GraphNodeIdIndex(d) == GraphNodeIdIndex(b));- In
Ops.c:88:
IntGraph graph = GraphInit(&alloc);
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNode node = GraphGetNode(&graph, a);- In
Ops.c:115:
IntGraph graph = GraphInit(&alloc);
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);
GraphNodeId c = GraphAddNodeR(&graph, 30);- In
Ops.c:116:
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);
GraphNodeId c = GraphAddNodeR(&graph, 30);- In
Ops.c:117:
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);
GraphNodeId c = GraphAddNodeR(&graph, 30);
GraphAddEdge(&graph, a, b);- In
Ops.c:164:
IntGraph graph = GraphInit(&alloc);
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);- In
Ops.c:165:
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);
GraphAddEdge(&graph, a, b);- In
Ops.c:193:
IntGraph graph = GraphInit(&alloc);
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);
GraphNodeId c = GraphAddNodeR(&graph, 30);- In
Ops.c:194:
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);
GraphNodeId c = GraphAddNodeR(&graph, 30);- In
Ops.c:195:
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);
GraphNodeId c = GraphAddNodeR(&graph, 30);
GraphAddEdge(&graph, a, b);- In
Ops.c:227:
IntGraph graph = GraphInit(&alloc);
GraphNodeId a = GraphAddNodeR(&graph, 10);
bool result = GraphAddEdge(&graph, a, a);- In
Ops.c:253:
IntGraph graph = GraphInit(&alloc);
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);
GraphNodeId c = GraphAddNodeR(&graph, 30);- In
Ops.c:254:
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);
GraphNodeId c = GraphAddNodeR(&graph, 30);
GraphNodeId d = GraphAddNodeR(&graph, 40);- In
Ops.c:255:
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);
GraphNodeId c = GraphAddNodeR(&graph, 30);
GraphNodeId d = GraphAddNodeR(&graph, 40);- In
Ops.c:256:
GraphNodeId b = GraphAddNodeR(&graph, 20);
GraphNodeId c = GraphAddNodeR(&graph, 30);
GraphNodeId d = GraphAddNodeR(&graph, 40);
GraphAddEdge(&graph, a, b);- In
Ops.c:289:
IntGraph graph = GraphInit(&alloc);
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);
u64 counts[2] = {0};- In
Ops.c:290:
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);
u64 counts[2] = {0};- In
Ops.c:300:
result = result && !GraphContainsNode(&graph, b);
GraphNodeId reused = GraphAddNodeR(&graph, 99);
result = result && (GraphNodeIdIndex(reused) == GraphNodeIdIndex(b));- In
Ops.c:324:
IntGraph graph = GraphInit(&alloc);
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNode node = GraphGetNode(&graph, a);- In
Ops.c:352:
IntGraph graph = GraphInit(&alloc);
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);
GraphNodeId c = GraphAddNodeR(&graph, 30);- In
Ops.c:353:
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);
GraphNodeId c = GraphAddNodeR(&graph, 30);- In
Ops.c:354:
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);
GraphNodeId c = GraphAddNodeR(&graph, 30);
// a.out = [c, b] -- the kept edge (a->c) comes first, the edge to the
- In
Ops.c:394:
IntGraph graph = GraphInit(&alloc);
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);- In
Ops.c:395:
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);
// Delete b so its slot is free at the time GraphClear walks it.
- In
Ops.c:407:
// A valid op after clear runs ValidateGraph; on the mutant the pre-free
// slot carries a bogus visit_count and validation aborts here.
GraphNodeId c = GraphAddNodeR(&graph, 30);
result = result && GraphContainsNode(&graph, c);
result = result && (GraphNodeCount(&graph) == 1);- In
Ops.c:429:
IntGraph graph = GraphInit(&alloc);
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);
(void)a;- In
Ops.c:430:
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);
(void)a;- In
Ops.c:441:
// Valid op runs ValidateGraph; on the mutant free_indices is over-long and
// slot accounting is inconsistent, so validation aborts before this runs.
GraphNodeId c = GraphAddNodeR(&graph, 30);
result = result && GraphContainsNode(&graph, c);
result = result && (GraphNodeCount(&graph) == 1);- In
Ops.c:463:
IntGraph graph = GraphInit(&alloc);
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);
GraphNodeId c = GraphAddNodeR(&graph, 30);- In
Ops.c:464:
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);
GraphNodeId c = GraphAddNodeR(&graph, 30);- In
Ops.c:465:
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);
GraphNodeId c = GraphAddNodeR(&graph, 30);
GraphAddEdge(&graph, a, c);- In
Ops.c:503:
IntGraph graph = GraphInit(&alloc);
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);- In
Ops.c:504:
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);
(void)GraphMarkNodeForDeletion(GraphGetNode(&graph, a));- In
Ops.c:508:
(void)GraphMarkNodeForDeletion(GraphGetNode(&graph, a));
(void)GraphCommitChanges(&graph);
(void)GraphAddNodeR(&graph, 99); // reuse a's slot, a is now stale
(void)GraphEdgeMarkedForRemoval(&graph, a, b);- In
Ops.c:527:
IntGraph graph = GraphInit(&alloc);
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);- In
Ops.c:528:
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);
(void)GraphMarkNodeForDeletion(GraphGetNode(&graph, b));- In
Ops.c:532:
(void)GraphMarkNodeForDeletion(GraphGetNode(&graph, b));
(void)GraphCommitChanges(&graph);
(void)GraphAddNodeR(&graph, 99); // reuse b's slot, b is now stale
(void)GraphEdgeMarkedForRemoval(&graph, a, b);- In
Ops.c:553:
IntGraph graph = GraphInit(&alloc);
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);- In
Ops.c:554:
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);
(void)GraphMarkNodeForDeletion(GraphGetNode(&graph, a));- In
Ops.c:558:
(void)GraphMarkNodeForDeletion(GraphGetNode(&graph, a));
(void)GraphCommitChanges(&graph);
(void)GraphAddNodeR(&graph, 99); // reuse a's slot, a is now stale
(void)GraphUnmarkEdgeForRemoval(&graph, a, b);- In
Ops.c:577:
IntGraph graph = GraphInit(&alloc);
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);- In
Ops.c:578:
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);
(void)GraphMarkNodeForDeletion(GraphGetNode(&graph, b));- In
Ops.c:582:
(void)GraphMarkNodeForDeletion(GraphGetNode(&graph, b));
(void)GraphCommitChanges(&graph);
(void)GraphAddNodeR(&graph, 99); // reuse b's slot, b is now stale
(void)GraphUnmarkEdgeForRemoval(&graph, a, b);- In
Ops.c:620:
IntGraph graph = GraphInit(&alloc);
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);- In
Ops.c:621:
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);
// a.out = [b]; b.in = [a]; the buffers physically hold those ids.
- In
Ops.c:678:
IntGraph graph = GraphInit(&alloc);
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);
GraphNodeId c = GraphAddNodeR(&graph, 30);- In
Ops.c:679:
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);
GraphNodeId c = GraphAddNodeR(&graph, 30);
(void)b;- In
Ops.c:680:
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);
GraphNodeId c = GraphAddNodeR(&graph, 30);
(void)b;- In
Ops.c:732:
IntGraph graph = GraphInit(&alloc);
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);
GraphNodeId c = GraphAddNodeR(&graph, 30);- In
Ops.c:733:
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);
GraphNodeId c = GraphAddNodeR(&graph, 30);
(void)b;- In
Ops.c:734:
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);
GraphNodeId c = GraphAddNodeR(&graph, 30);
(void)b;- In
Init.c:27:
bool result = VecCapacity(&graph.slots) >= 8;
GraphNodeId first_id = GraphAddNodeR(&graph, 10);
GraphNodeId second_id = GraphAddNodeR(&graph, 20);
GraphNodeId third_id = GraphAddNodeR(&graph, 30);- In
Init.c:28:
bool result = VecCapacity(&graph.slots) >= 8;
GraphNodeId first_id = GraphAddNodeR(&graph, 10);
GraphNodeId second_id = GraphAddNodeR(&graph, 20);
GraphNodeId third_id = GraphAddNodeR(&graph, 30);
u64 slot_count = VecLen(&graph.slots);- In
Init.c:29:
GraphNodeId first_id = GraphAddNodeR(&graph, 10);
GraphNodeId second_id = GraphAddNodeR(&graph, 20);
GraphNodeId third_id = GraphAddNodeR(&graph, 30);
u64 slot_count = VecLen(&graph.slots);
size slot_capacity = VecCapacity(&graph.slots);- In
Init.c:114:
Str *stored_name;
node_id = GraphAddNodeR(&graph, StrZ("alpha", &alloc));
node = GraphGetNode(&graph, node_id);
stored_name = GraphNodeDataPtr(&graph, node);- In
Init.c:223:
IntGraph graph = GraphInit(&dbg);
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);- In
Init.c:224:
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);
GraphAddEdge(&graph, a, b);- In
Insert.c:42:
GraphNodeId id0 = GraphAddNodeL(&graph, owned);
GraphNodeId id1 = GraphAddNodeR(&graph, shared);
bool result = GraphNodeIdIndex(id0) == 0 && GraphNodeIdGeneration(id0) == 1 && GraphNodeIdIndex(id1) == 1;- In
Insert.c:62:
IntGraph graph = GraphInit(&alloc);
GraphNodeId a = GraphAddNodeR(&graph, 1);
GraphNodeId b = GraphAddNodeR(&graph, 2);
GraphNodeId c = GraphAddNodeR(&graph, 3);- In
Insert.c:63:
GraphNodeId a = GraphAddNodeR(&graph, 1);
GraphNodeId b = GraphAddNodeR(&graph, 2);
GraphNodeId c = GraphAddNodeR(&graph, 3);- In
Insert.c:64:
GraphNodeId a = GraphAddNodeR(&graph, 1);
GraphNodeId b = GraphAddNodeR(&graph, 2);
GraphNodeId c = GraphAddNodeR(&graph, 3);
bool result = GraphAddEdge(&graph, a, b);- In
Insert.c:92:
IntGraph graph = GraphInit(&alloc);
GraphNodeId a = GraphAddNodeR(&graph, 1);
GraphNodeId b = GraphAddNodeR(&graph, 2);
GraphNodeId c = GraphAddNodeR(&graph, 3);- In
Insert.c:93:
GraphNodeId a = GraphAddNodeR(&graph, 1);
GraphNodeId b = GraphAddNodeR(&graph, 2);
GraphNodeId c = GraphAddNodeR(&graph, 3);- In
Insert.c:94:
GraphNodeId a = GraphAddNodeR(&graph, 1);
GraphNodeId b = GraphAddNodeR(&graph, 2);
GraphNodeId c = GraphAddNodeR(&graph, 3);
bool result = GraphAddEdge(&graph, a, a);- In
Insert.c:125:
IntGraph graph = GraphInit(&alloc);
(void)GraphAddNodeR(&graph, 1);
size old_capacity = VecCapacity(&graph.slots);- In
Insert.c:152:
IntGraph graph = GraphInit(&alloc);
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);
(void)a;- In
Insert.c:153:
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);
(void)a;- In
Insert.c:160:
u64 old_epoch = GraphMutationEpoch(&graph);
GraphNodeId reused = GraphAddNodeR(&graph, 99);
bool result = (GraphNodeIdIndex(reused) == GraphNodeIdIndex(b));- In
Insert.c:183:
IntGraph graph = GraphInitWithDeepCopy(flaky_int_copy, NULL, &alloc);
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);
(void)a;- In
Insert.c:184:
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);
(void)a;- In
Insert.c:191:
g_fail_copy = true;
GraphNodeId failed_id = GraphAddNodeR(&graph, 30);
g_fail_copy = false;- In
Insert.c:194:
g_fail_copy = false;
GraphNodeId reused = GraphAddNodeR(&graph, 40);
bool result = (failed_id == 0);- In
Insert.c:219:
IntGraph graph = GraphInitWithDeepCopy(flaky_int_copy, NULL, &alloc);
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);
GraphNodeId c = GraphAddNodeR(&graph, 30);- In
Insert.c:220:
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);
GraphNodeId c = GraphAddNodeR(&graph, 30);- In
Insert.c:221:
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);
GraphNodeId c = GraphAddNodeR(&graph, 30);
(void)GraphMarkNodeForDeletion(GraphGetNode(&graph, b));- In
Insert.c:227:
g_fail_copy = true;
(void)GraphAddNodeR(&graph, 40);
g_fail_copy = false;- In
Insert.c:268:
g_fail_copy = true;
GraphNodeId failed_id = GraphAddNodeR(&graph, 42);
g_fail_copy = false;- In
Insert.c:299:
IntGraph graph = GraphInitWithDeepCopy(flaky_int_copy, NULL, &dbg);
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);
(void)a;- In
Insert.c:300:
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);
(void)a;- In
Insert.c:310:
g_fail_copy = true;
GraphNodeId failed_id = GraphAddNodeR(&graph, 30); // reuses b's slot, copy fails
g_fail_copy = false;- In
Type.c:49:
IntGraph graph = GraphInit(&alloc);
GraphNodeId node_id = GraphAddNodeR(&graph, 11);
GraphNode node = GraphGetNode(&graph, node_id);- In
Type.c:78:
IntGraph graph = GraphInit(&alloc);
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);
(void)a;- In
Type.c:79:
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);
(void)a;- In
Type.c:87:
// validator (sets the validated bit), so the next ValidateGraph walks the
// slots and recomputes marked_count.
GraphNodeId d = GraphAddNodeR(&graph, 40);
(void)d;- In
Type.c:117:
IntGraph graph = GraphInit(&alloc);
(void)GraphAddNodeR(&graph, 10);
// intentional bypass: there is no public setter for an allocator's
- In
Type.c:153:
IntGraph graph = GraphInit(&alloc);
(void)GraphAddNodeR(&graph, 10);
// intentional bypass: force the deep validator to run on the next call and
- In
Type.c:179:
IntGraph graph = GraphInit(&alloc);
(void)GraphAddNodeR(&graph, 10);
// intentional bypass: corrupt the private free_indices-vector magic that
- In
Type.c:204:
IntGraph graph = GraphInit(&alloc);
(void)GraphAddNodeR(&graph, 10);
// intentional bypass: corrupt the private pending_edge_removals-vector
- In
Type.c:241:
IntGraph graph = GraphInit(&alloc);
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);
GraphNodeId c = GraphAddNodeR(&graph, 30);- In
Type.c:242:
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);
GraphNodeId c = GraphAddNodeR(&graph, 30);- In
Type.c:243:
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);
GraphNodeId c = GraphAddNodeR(&graph, 30);
GraphAddEdge(&graph, a, b);- In
Type.c:272:
IntGraph graph = GraphInit(&alloc);
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);
GraphNodeId c = GraphAddNodeR(&graph, 30);- In
Type.c:273:
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);
GraphNodeId c = GraphAddNodeR(&graph, 30);- In
Type.c:274:
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);
GraphNodeId c = GraphAddNodeR(&graph, 30);
GraphAddEdge(&graph, a, b);- In
Type.c:307:
IntGraph graph = GraphInit(&alloc);
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);
GraphNodeId c = GraphAddNodeR(&graph, 30);- In
Type.c:308:
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);
GraphNodeId c = GraphAddNodeR(&graph, 30);- In
Type.c:309:
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);
GraphNodeId c = GraphAddNodeR(&graph, 30);
GraphAddEdge(&graph, b, a);- In
Type.c:338:
IntGraph graph = GraphInit(&alloc);
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);
GraphNodeId c = GraphAddNodeR(&graph, 30);- In
Type.c:339:
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);
GraphNodeId c = GraphAddNodeR(&graph, 30);- In
Type.c:340:
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);
GraphNodeId c = GraphAddNodeR(&graph, 30);
GraphAddEdge(&graph, b, a);- In
Type.c:373:
IntGraph graph = GraphInit(&alloc);
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);- In
Type.c:374:
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);
(void)GraphMarkNodeForDeletion(GraphGetNode(&graph, b));- In
Type.c:402:
IntGraph graph = GraphInit(&alloc);
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);
(void)a; // a keeps slot 0 occupied; only b is deleted to seed free_indices.
- In
Type.c:403:
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);
(void)a; // a keeps slot 0 occupied; only b is deleted to seed free_indices.
- In
Type.c:432:
IntGraph graph = GraphInit(&alloc);
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);
GraphNodeId c = GraphAddNodeR(&graph, 30);- In
Type.c:433:
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);
GraphNodeId c = GraphAddNodeR(&graph, 30);- In
Type.c:434:
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);
GraphNodeId c = GraphAddNodeR(&graph, 30);
(void)GraphMarkNodeForDeletion(GraphGetNode(&graph, b));- In
Type.c:467:
IntGraph graph = GraphInit(&alloc);
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);
GraphNodeId d = GraphAddNodeR(&graph, 40);- In
Type.c:468:
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);
GraphNodeId d = GraphAddNodeR(&graph, 40);- In
Type.c:469:
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);
GraphNodeId d = GraphAddNodeR(&graph, 40);
GraphAddEdge(&graph, a, b);- In
Type.c:497:
IntGraph graph = GraphInit(&alloc);
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);
GraphNodeId c = GraphAddNodeR(&graph, 30);- In
Type.c:498:
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);
GraphNodeId c = GraphAddNodeR(&graph, 30);
GraphNodeId d = GraphAddNodeR(&graph, 40);- In
Type.c:499:
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);
GraphNodeId c = GraphAddNodeR(&graph, 30);
GraphNodeId d = GraphAddNodeR(&graph, 40);- In
Type.c:500:
GraphNodeId b = GraphAddNodeR(&graph, 20);
GraphNodeId c = GraphAddNodeR(&graph, 30);
GraphNodeId d = GraphAddNodeR(&graph, 40);
GraphAddEdge(&graph, a, b);- In
Type.c:532:
IntGraph graph = GraphInit(&alloc);
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);
GraphNodeId c = GraphAddNodeR(&graph, 30);- In
Type.c:533:
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);
GraphNodeId c = GraphAddNodeR(&graph, 30);- In
Type.c:534:
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);
GraphNodeId c = GraphAddNodeR(&graph, 30);
(void)GraphAddEdge(&graph, a, b);- In
Foreach.c:34:
static GraphNodeId city_add_intersection(CityGraph *graph, CityIndex *index, const Str *name, DefaultAllocator *alloc) {
GraphNodeId id = GraphAddNodeR(graph, StrInitFromCstr(StrBegin(name), StrLen(name), alloc));
Str key_copy = StrInitFromCstr(StrBegin(name), StrLen(name), alloc);- In
Foreach.c:142:
CountMap counts = MapInit(node_id_hash, node_id_compare, &alloc);
GraphNodeId a = GraphAddNodeR(&graph, 1);
GraphNodeId b = GraphAddNodeR(&graph, 2);
GraphNodeId c = GraphAddNodeR(&graph, 3);- In
Foreach.c:143:
GraphNodeId a = GraphAddNodeR(&graph, 1);
GraphNodeId b = GraphAddNodeR(&graph, 2);
GraphNodeId c = GraphAddNodeR(&graph, 3);
GraphNodeId d = GraphAddNodeR(&graph, 4);- In
Foreach.c:144:
GraphNodeId a = GraphAddNodeR(&graph, 1);
GraphNodeId b = GraphAddNodeR(&graph, 2);
GraphNodeId c = GraphAddNodeR(&graph, 3);
GraphNodeId d = GraphAddNodeR(&graph, 4);- In
Foreach.c:145:
GraphNodeId b = GraphAddNodeR(&graph, 2);
GraphNodeId c = GraphAddNodeR(&graph, 3);
GraphNodeId d = GraphAddNodeR(&graph, 4);
GraphAddEdge(&graph, a, b);- In
Foreach.c:179:
IntGraph graph = GraphInit(&alloc);
GraphNodeId a = GraphAddNodeR(&graph, 1);
GraphNodeId b = GraphAddNodeR(&graph, 2);
GraphNodeId c = GraphAddNodeR(&graph, 3);- In
Foreach.c:180:
GraphNodeId a = GraphAddNodeR(&graph, 1);
GraphNodeId b = GraphAddNodeR(&graph, 2);
GraphNodeId c = GraphAddNodeR(&graph, 3);
GraphNodeId d = GraphAddNodeR(&graph, 4);- In
Foreach.c:181:
GraphNodeId a = GraphAddNodeR(&graph, 1);
GraphNodeId b = GraphAddNodeR(&graph, 2);
GraphNodeId c = GraphAddNodeR(&graph, 3);
GraphNodeId d = GraphAddNodeR(&graph, 4);- In
Foreach.c:182:
GraphNodeId b = GraphAddNodeR(&graph, 2);
GraphNodeId c = GraphAddNodeR(&graph, 3);
GraphNodeId d = GraphAddNodeR(&graph, 4);
GraphAddEdge(&graph, a, d);- In
Foreach.c:215:
IntGraph graph = GraphInit(&alloc);
GraphAddNodeR(&graph, 1);
GraphAddNodeR(&graph, 2);- In
Foreach.c:216:
GraphAddNodeR(&graph, 1);
GraphAddNodeR(&graph, 2);
GraphForeachNode(&graph, node) {- In
Foreach.c:220:
GraphForeachNode(&graph, node) {
(void)node;
(void)GraphAddNodeR(&graph, 3);
}- In
Foreach.c:236:
IntGraph graph = GraphInit(&alloc);
GraphNodeId a = GraphAddNodeR(&graph, 1);
GraphNodeId b = GraphAddNodeR(&graph, 2);
GraphNodeId c = GraphAddNodeR(&graph, 3);- In
Foreach.c:237:
GraphNodeId a = GraphAddNodeR(&graph, 1);
GraphNodeId b = GraphAddNodeR(&graph, 2);
GraphNodeId c = GraphAddNodeR(&graph, 3);- In
Foreach.c:238:
GraphNodeId a = GraphAddNodeR(&graph, 1);
GraphNodeId b = GraphAddNodeR(&graph, 2);
GraphNodeId c = GraphAddNodeR(&graph, 3);
GraphAddEdge(&graph, a, b);- In
Foreach.c:260:
IntGraph graph = GraphInit(&alloc);
GraphNodeId a = GraphAddNodeR(&graph, 1);
GraphNodeId b = GraphAddNodeR(&graph, 2);
GraphNodeId c = GraphAddNodeR(&graph, 3);- In
Foreach.c:261:
GraphNodeId a = GraphAddNodeR(&graph, 1);
GraphNodeId b = GraphAddNodeR(&graph, 2);
GraphNodeId c = GraphAddNodeR(&graph, 3);
GraphNodeId d = GraphAddNodeR(&graph, 4);- In
Foreach.c:262:
GraphNodeId a = GraphAddNodeR(&graph, 1);
GraphNodeId b = GraphAddNodeR(&graph, 2);
GraphNodeId c = GraphAddNodeR(&graph, 3);
GraphNodeId d = GraphAddNodeR(&graph, 4);- In
Foreach.c:263:
GraphNodeId b = GraphAddNodeR(&graph, 2);
GraphNodeId c = GraphAddNodeR(&graph, 3);
GraphNodeId d = GraphAddNodeR(&graph, 4);
GraphAddEdge(&graph, a, c);- In
Foreach.c:294:
GraphReserve(&graph, 4);
(void)GraphAddNodeR(&graph, 10);
(void)GraphAddNodeR(&graph, 20);- In
Foreach.c:295:
(void)GraphAddNodeR(&graph, 10);
(void)GraphAddNodeR(&graph, 20);
u64 visited = 0;- In
Foreach.c:329:
IntGraph graph = GraphInit(&alloc);
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);
GraphNodeId c = GraphAddNodeR(&graph, 30);- In
Foreach.c:330:
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);
GraphNodeId c = GraphAddNodeR(&graph, 30);
(void)a;- In
Foreach.c:331:
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);
GraphNodeId c = GraphAddNodeR(&graph, 30);
(void)a;
(void)c;- In
Foreach.c:369:
IntGraph graph = GraphInit(&alloc);
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);- In
Foreach.c:370:
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);
GraphAddEdge(&graph, a, b);- In
Foreach.c:406:
IntGraph graph = GraphInit(&alloc);
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);- In
Foreach.c:407:
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);
GraphAddEdge(&graph, a, b);- In
Foreach.c:444:
IntGraph graph = GraphInit(&alloc);
GraphNodeId a = GraphAddNodeR(&graph, 10);
// Capture a handle, then delete + commit + reuse a's slot so the captured
- In
Foreach.c:451:
(void)GraphMarkNodeForDeletion(GraphGetNode(&graph, a));
(void)GraphCommitChanges(&graph);
(void)GraphAddNodeR(&graph, 99); // reuse a's slot at a higher generation
// Real code: graph_validate_node_handle aborts on the stale id here.
- In
Foreach.c:484:
(void)GraphReserve(&graph, 8);
GraphAddNodeR(&graph, 1);
GraphAddNodeR(&graph, 2);- In
Foreach.c:485:
GraphAddNodeR(&graph, 1);
GraphAddNodeR(&graph, 2);
bool added = false;- In
Foreach.c:493:
added = true;
// No free indices and spare capacity => grow path with no realloc.
(void)GraphAddNodeR(&graph, 3);
}
}- In
Foreach.c:514:
IntGraph graph = GraphInit(&alloc);
(void)GraphAddNodeR(&graph, 10);
(void)GraphAddNodeR(&graph, 20);- In
Foreach.c:515:
(void)GraphAddNodeR(&graph, 10);
(void)GraphAddNodeR(&graph, 20);
u64 visited = 0;- In
Foreach.c:547:
IntGraph graph = GraphInit(&alloc);
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);
(void)a;- In
Foreach.c:548:
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);
(void)a;- In
Foreach.c:580:
IntGraph graph = GraphInit(&alloc);
(void)GraphAddNodeR(&graph, 10);
(void)GraphAddNodeR(&graph, 20);- In
Foreach.c:581:
(void)GraphAddNodeR(&graph, 10);
(void)GraphAddNodeR(&graph, 20);
// Run the deep validator once on the consistent graph so it clears the
- In
Access.c:24:
IntGraph graph = GraphInit(&alloc);
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);
GraphNodeId c = GraphAddNodeR(&graph, 30);- In
Access.c:25:
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);
GraphNodeId c = GraphAddNodeR(&graph, 30);
GraphNode node_b;- In
Access.c:26:
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);
GraphNodeId c = GraphAddNodeR(&graph, 30);
GraphNode node_b;
GraphAddEdge(&graph, a, b);- In
Access.c:66:
ZstrGraph graph = GraphInit(&alloc);
GraphNodeId red = GraphAddNodeR(&graph, "red");
GraphNodeId green = GraphAddNodeR(&graph, "green");
GraphNodeId blue = GraphAddNodeR(&graph, "blue");- In
Access.c:67:
GraphNodeId red = GraphAddNodeR(&graph, "red");
GraphNodeId green = GraphAddNodeR(&graph, "green");
GraphNodeId blue = GraphAddNodeR(&graph, "blue");- In
Access.c:68:
GraphNodeId red = GraphAddNodeR(&graph, "red");
GraphNodeId green = GraphAddNodeR(&graph, "green");
GraphNodeId blue = GraphAddNodeR(&graph, "blue");
GraphAddEdge(&graph, red, green);- In
Access.c:92:
IntGraph graph_a = GraphInit(&alloc);
IntGraph graph_b = GraphInit(&alloc);
GraphNode node = GraphGetNode(&graph_a, GraphAddNodeR(&graph_a, 10));
(void)GraphNodeData(&graph_b, node);- In
Access.c:110:
IntGraph graph = GraphInit(&alloc);
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);- In
Access.c:111:
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);
GraphAddEdge(&graph, a, b);- In
Access.c:129:
IntGraph graph = GraphInit(&alloc);
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);- In
Access.c:130:
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);
GraphAddEdge(&graph, a, b);- In
Access.c:160:
IntGraph graph = GraphInit(&alloc);
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);- In
Access.c:161:
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);
bool result = GraphContainsNode(&graph, a);- In
Access.c:198:
IntGraph graph = GraphInit(&alloc);
GraphNodeId a = GraphAddNodeR(&graph, 10);
bool result = GraphContainsNode(&graph, a);- In
Access.c:233:
IntGraph graph = GraphInit(&alloc);
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);
(void)a;- In
Access.c:234:
GraphNodeId a = GraphAddNodeR(&graph, 10);
GraphNodeId b = GraphAddNodeR(&graph, 20);
(void)a;- In
Access.c:266:
IntGraph graph = GraphInit(&alloc);
GraphNodeId a = GraphAddNodeR(&graph, 10);
(void)GraphMarkNodeForDeletion(GraphGetNode(&graph, a));- In
Access.c:291:
IntGraph graph = GraphInit(&alloc);
GraphNodeId a = GraphAddNodeR(&graph, 10);
// index 5 does not exist; generation 1 is otherwise plausible.
- In
Access.c:315:
IntGraph graph = GraphInit(&alloc);
GraphNodeId a = GraphAddNodeR(&graph, 10);
(void)GraphMarkNodeForDeletion(GraphGetNode(&graph, a));- In
Access.c:320:
(void)GraphCommitChanges(&graph);
// Reuse a's slot at a higher generation; `a` is now stale.
(void)GraphAddNodeR(&graph, 99);
(void)GraphNodeAt(&graph, a);- In
Access.c:347:
IntGraph graph = GraphInit(&alloc);
GraphNodeId a = GraphAddNodeR(&graph, 10);
(void)GraphMarkNodeForDeletion(GraphGetNode(&graph, a));
Last updated on