| 90 | } |
| 91 | |
| 92 | static void deferred_buf_push(deferred_edge_buf_t *buf, int64_t src, int64_t tgt, float score, |
| 93 | bool same_file, int i, int j, int c) { |
| 94 | if (buf->count >= buf->cap) { |
| 95 | int nc = buf->cap < CBM_SZ_256 ? CBM_SZ_256 : buf->cap * GROW; |
| 96 | deferred_edge_t *grown = realloc(buf->edges, (size_t)nc * sizeof(deferred_edge_t)); |
| 97 | if (!grown) { |
| 98 | return; |
| 99 | } |
| 100 | buf->edges = grown; |
| 101 | buf->cap = nc; |
| 102 | } |
| 103 | buf->edges[buf->count++] = (deferred_edge_t){.source_id = src, |
| 104 | .target_id = tgt, |
| 105 | .score = score, |
| 106 | .same_file = same_file, |
| 107 | .i = i, |
| 108 | .j = j, |
| 109 | .c = c}; |
| 110 | } |
| 111 | |
| 112 | static void deferred_buf_free(deferred_edge_buf_t *buf) { |
| 113 | free(buf->edges); |