grid: snapshot: use uri range utility functions

This commit is contained in:
Daniel Eklöf 2021-11-27 16:07:50 +01:00
parent 5c7e881cd4
commit 5c6c2de051
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F

33
grid.c
View file

@ -149,29 +149,24 @@ grid_snapshot(const struct grid *grid)
for (int c = 0; c < grid->num_cols; c++) for (int c = 0; c < grid->num_cols; c++)
clone_row->cells[c] = row->cells[c]; clone_row->cells[c] = row->cells[c];
if (row->extra != NULL) { const struct row_data *extra = row->extra;
const struct row_data *extra = row->extra;
struct row_data *new_extra = xmalloc(sizeof(*new_extra)); if (extra != NULL) {
struct row_uri_range *ranges = ensure_row_has_extra_data(clone_row);
xmalloc(extra->uri_ranges.count * sizeof(ranges[0])); uri_range_ensure_size(clone_row->extra, extra->uri_ranges.count);
struct row_data *clone_extra = clone_row->extra;
for (size_t i = 0; i < extra->uri_ranges.count; i++) { for (size_t i = 0; i < extra->uri_ranges.count; i++) {
const struct row_uri_range *range = &extra->uri_ranges.v[i]; const struct row_uri_range *range = &extra->uri_ranges.v[i];
uri_range_append(
ranges[i] = (struct row_uri_range){ clone_extra,
.start = range->start, (struct row_uri_range){
.end = range->end, .start = range->start,
.id = range->id, .end = range->end,
.uri = xstrdup(range->uri), .id = range->id,
}; .uri = xstrdup(range->uri)});
} }
new_extra->uri_ranges.v = ranges;
new_extra->uri_ranges.size = extra->uri_ranges.count;
new_extra->uri_ranges.count = extra->uri_ranges.count;
clone_row->extra = new_extra;
} else } else
clone_row->extra = NULL; clone_row->extra = NULL;
} }