| 187 | } |
| 188 | |
| 189 | struct configvar **configvar_join(const tal_t *ctx, |
| 190 | struct configvar **first, |
| 191 | struct configvar **second) |
| 192 | { |
| 193 | struct configvar **cvs; |
| 194 | size_t n = tal_count(first); |
| 195 | |
| 196 | if (taken(first)) { |
| 197 | cvs = tal_steal(ctx, first); |
| 198 | tal_resize(&cvs, n + tal_count(second)); |
| 199 | } else { |
| 200 | cvs = tal_arr(ctx, struct configvar *, n + tal_count(second)); |
| 201 | for (size_t i = 0; i < n; i++) { |
| 202 | cvs[i] = configvar_dup(cvs, first[i]); |
| 203 | } |
| 204 | } |
| 205 | if (taken(second)) { |
| 206 | for (size_t i = 0; i < tal_count(second); i++) |
| 207 | cvs[n + i] = tal_steal(cvs, second[i]); |
| 208 | tal_free(second); |
| 209 | } else { |
| 210 | for (size_t i = 0; i < tal_count(second); i++) |
| 211 | cvs[n + i] = configvar_dup(cvs, second[i]); |
| 212 | } |
| 213 | |
| 214 | return cvs; |
| 215 | } |
| 216 | |
| 217 | static struct configvar *configvar_iter(struct configvar **cvs, |
| 218 | const char **names, |
no test coverage detected