reftable: convert from `strbuf` to `reftable_buf`

Convert the reftable library to use the `reftable_buf` interface instead of the `strbuf` interface. This is mostly a mechanical change via sed(1) with some manual fixes where functions for `strbuf` and `reftable_buf` differ. The converted code does not yet handle allocation failures. This will be handled in subsequent commits. Signed-off-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Taylor Blau <me@ttaylorr.com>

Patrick Steinhardt committed Oct 17, 2024 at 06:53 UTC be4c070a3c9e7c9d6836c724929ff8a365361e1a
24 files changed +374 -371
reftable/basics.c
+1 -1
@@ -260,7 +260,7 @@ int names_equal(const char **a, const char **b)
260 return a[i] == b[i];
261 }
262
263 -int common_prefix_size(struct strbuf *a, struct strbuf *b)
263 +int common_prefix_size(struct reftable_buf *a, struct reftable_buf *b)
264 {
265 int p = 0;
266 for (; p < a->len && p < b->len; p++) {
reftable/basics.h
+4 -3
@@ -57,7 +57,9 @@ int reftable_buf_setlen(struct reftable_buf *buf, size_t len);
57 int reftable_buf_cmp(const struct reftable_buf *a, const struct reftable_buf *b);
58
59 /*
60 - * Add the given bytes to the buffer. Returns 0 on success,
60 + * Append `len` bytes from `data` to the buffer. This function works with
61 + * arbitrary byte sequences, including ones that contain embedded NUL
62 + * characters. As such, we use `void *` as input type. Returns 0 on success,
63 * REFTABLE_OUT_OF_MEMORY_ERROR on allocation failure.
64 */
65 int reftable_buf_add(struct reftable_buf *buf, const void *data, size_t len);
@@ -144,8 +146,7 @@ char *reftable_strdup(const char *str);
146 #endif
147
148 /* Find the longest shared prefix size of `a` and `b` */
147 -struct strbuf;
148 -int common_prefix_size(struct strbuf *a, struct strbuf *b);
149 +int common_prefix_size(struct reftable_buf *a, struct reftable_buf *b);
150
151 int hash_size(uint32_t id);
152
reftable/block.c
+17 -17
@@ -38,7 +38,7 @@ int footer_size(int version)
38 }
39
40 static int block_writer_register_restart(struct block_writer *w, int n,
41 - int is_restart, struct strbuf *key)
41 + int is_restart, struct reftable_buf *key)
42 {
43 int rlen = w->restart_len;
44 if (rlen >= MAX_RESTARTS) {
@@ -59,8 +59,8 @@ static int block_writer_register_restart(struct block_writer *w, int n,
59
60 w->next += n;
61
62 - strbuf_reset(&w->last_key);
63 - strbuf_add(&w->last_key, key->buf, key->len);
62 + reftable_buf_reset(&w->last_key);
63 + reftable_buf_add(&w->last_key, key->buf, key->len);
64 w->entries++;
65 return 0;
66 }
@@ -98,8 +98,8 @@ uint8_t block_writer_type(struct block_writer *bw)
98 empty key. */
99 int block_writer_add(struct block_writer *w, struct reftable_record *rec)
100 {
101 - struct strbuf empty = STRBUF_INIT;
102 - struct strbuf last =
101 + struct reftable_buf empty = REFTABLE_BUF_INIT;
102 + struct reftable_buf last =
103 w->entries % w->restart_interval == 0 ? empty : w->last_key;
104 struct string_view out = {
105 .buf = w->buf + w->next,
@@ -109,7 +109,7 @@ int block_writer_add(struct block_writer *w, struct reftable_record *rec)
109 struct string_view start = out;
110
111 int is_restart = 0;
112 - struct strbuf key = STRBUF_INIT;
112 + struct reftable_buf key = REFTABLE_BUF_INIT;
113 int n = 0;
114 int err = -1;
115
@@ -133,7 +133,7 @@ int block_writer_add(struct block_writer *w, struct reftable_record *rec)
133 err = block_writer_register_restart(w, start.len - out.len, is_restart,
134 &key);
135 done:
136 - strbuf_release(&key);
136 + reftable_buf_release(&key);
137 return err;
138 }
139
@@ -325,7 +325,7 @@ uint8_t block_reader_type(const struct block_reader *r)
325 return r->block.data[r->header_off];
326 }
327
328 -int block_reader_first_key(const struct block_reader *br, struct strbuf *key)
328 +int block_reader_first_key(const struct block_reader *br, struct reftable_buf *key)
329 {
330 int off = br->header_off + 4, n;
331 struct string_view in = {
@@ -334,7 +334,7 @@ int block_reader_first_key(const struct block_reader *br, struct strbuf *key)
334 };
335 uint8_t extra = 0;
336
337 - strbuf_reset(key);
337 + reftable_buf_reset(key);
338
339 n = reftable_decode_key(key, &extra, in);
340 if (n < 0)
@@ -355,13 +355,13 @@ void block_iter_seek_start(struct block_iter *it, const struct block_reader *br)
355 it->block = br->block.data;
356 it->block_len = br->block_len;
357 it->hash_size = br->hash_size;
358 - strbuf_reset(&it->last_key);
358 + reftable_buf_reset(&it->last_key);
359 it->next_off = br->header_off + 4;
360 }
361
362 struct restart_needle_less_args {
363 int error;
364 - struct strbuf needle;
364 + struct reftable_buf needle;
365 const struct block_reader *reader;
366 };
367
@@ -433,7 +433,7 @@ int block_iter_next(struct block_iter *it, struct reftable_record *rec)
433
434 void block_iter_reset(struct block_iter *it)
435 {
436 - strbuf_reset(&it->last_key);
436 + reftable_buf_reset(&it->last_key);
437 it->next_off = 0;
438 it->block = NULL;
439 it->block_len = 0;
@@ -442,12 +442,12 @@ void block_iter_reset(struct block_iter *it)
442
443 void block_iter_close(struct block_iter *it)
444 {
445 - strbuf_release(&it->last_key);
446 - strbuf_release(&it->scratch);
445 + reftable_buf_release(&it->last_key);
446 + reftable_buf_release(&it->scratch);
447 }
448
449 int block_iter_seek_key(struct block_iter *it, const struct block_reader *br,
450 - struct strbuf *want)
450 + struct reftable_buf *want)
451 {
452 struct restart_needle_less_args args = {
453 .needle = *want,
@@ -537,7 +537,7 @@ int block_iter_seek_key(struct block_iter *it, const struct block_reader *br,
537 * with themselves.
538 */
539 reftable_record_key(&rec, &it->last_key);
540 - if (strbuf_cmp(&it->last_key, want) >= 0) {
540 + if (reftable_buf_cmp(&it->last_key, want) >= 0) {
541 it->next_off = prev_off;
542 goto done;
543 }
@@ -554,7 +554,7 @@ void block_writer_release(struct block_writer *bw)
554 REFTABLE_FREE_AND_NULL(bw->zstream);
555 REFTABLE_FREE_AND_NULL(bw->restarts);
556 REFTABLE_FREE_AND_NULL(bw->compressed);
557 - strbuf_release(&bw->last_key);
557 + reftable_buf_release(&bw->last_key);
558 /* the block is not owned. */
559 }
560
reftable/block.h
+7 -7
@@ -38,7 +38,7 @@ struct block_writer {
38 uint32_t restart_len;
39 uint32_t restart_cap;
40
41 - struct strbuf last_key;
41 + struct reftable_buf last_key;
42 int entries;
43 };
44
@@ -98,7 +98,7 @@ void block_reader_release(struct block_reader *br);
98 uint8_t block_reader_type(const struct block_reader *r);
99
100 /* Decodes the first key in the block */
101 -int block_reader_first_key(const struct block_reader *br, struct strbuf *key);
101 +int block_reader_first_key(const struct block_reader *br, struct reftable_buf *key);
102
103 /* Iterate over entries in a block */
104 struct block_iter {
@@ -109,13 +109,13 @@ struct block_iter {
109 int hash_size;
110
111 /* key for last entry we read. */
112 - struct strbuf last_key;
113 - struct strbuf scratch;
112 + struct reftable_buf last_key;
113 + struct reftable_buf scratch;
114 };
115
116 #define BLOCK_ITER_INIT { \
117 - .last_key = STRBUF_INIT, \
118 - .scratch = STRBUF_INIT, \
117 + .last_key = REFTABLE_BUF_INIT, \
118 + .scratch = REFTABLE_BUF_INIT, \
119 }
120
121 /* Position `it` at start of the block */
@@ -123,7 +123,7 @@ void block_iter_seek_start(struct block_iter *it, const struct block_reader *br)
123
124 /* Position `it` to the `want` key in the block */
125 int block_iter_seek_key(struct block_iter *it, const struct block_reader *br,
126 - struct strbuf *want);
126 + struct reftable_buf *want);
127
128 /* return < 0 for error, 0 for OK, > 0 for EOF. */
129 int block_iter_next(struct block_iter *it, struct reftable_record *rec);
reftable/blocksource.c
+3 -3
@@ -27,7 +27,7 @@ static void strbuf_close(void *b UNUSED)
27 static int strbuf_read_block(void *v, struct reftable_block *dest, uint64_t off,
28 uint32_t size)
29 {
30 - struct strbuf *b = v;
30 + struct reftable_buf *b = v;
31 assert(off + size <= b->len);
32 REFTABLE_CALLOC_ARRAY(dest->data, size);
33 if (!dest->data)
@@ -39,7 +39,7 @@ static int strbuf_read_block(void *v, struct reftable_block *dest, uint64_t off,
39
40 static uint64_t strbuf_size(void *b)
41 {
42 - return ((struct strbuf *)b)->len;
42 + return ((struct reftable_buf *)b)->len;
43 }
44
45 static struct reftable_block_source_vtable strbuf_vtable = {
@@ -50,7 +50,7 @@ static struct reftable_block_source_vtable strbuf_vtable = {
50 };
51
52 void block_source_from_strbuf(struct reftable_block_source *bs,
53 - struct strbuf *buf)
53 + struct reftable_buf *buf)
54 {
55 assert(!bs->ops);
56 bs->ops = &strbuf_vtable;
reftable/blocksource.h
+2 -1
@@ -12,9 +12,10 @@ https://developers.google.com/open-source/licenses/bsd
12 #include "system.h"
13
14 struct reftable_block_source;
15 +struct reftable_buf;
16
17 /* Create an in-memory block source for reading reftables */
18 void block_source_from_strbuf(struct reftable_block_source *bs,
18 - struct strbuf *buf);
19 + struct reftable_buf *buf);
20
21 #endif
reftable/iter.c
+3 -3
@@ -55,7 +55,7 @@ void iterator_set_empty(struct reftable_iterator *it)
55 static void filtering_ref_iterator_close(void *iter_arg)
56 {
57 struct filtering_ref_iterator *fri = iter_arg;
58 - strbuf_release(&fri->oid);
58 + reftable_buf_release(&fri->oid);
59 reftable_iterator_destroy(&fri->it);
60 }
61
@@ -115,7 +115,7 @@ static void indexed_table_ref_iter_close(void *p)
115 block_iter_close(&it->cur);
116 reftable_block_done(&it->block_reader.block);
117 reftable_free(it->offsets);
118 - strbuf_release(&it->oid);
118 + reftable_buf_release(&it->oid);
119 }
120
121 static int indexed_table_ref_iter_next_block(struct indexed_table_ref_iter *it)
@@ -197,7 +197,7 @@ int indexed_table_ref_iter_new(struct indexed_table_ref_iter **dest,
197
198 *itr = empty;
199 itr->r = r;
200 - strbuf_add(&itr->oid, oid, oid_len);
200 + reftable_buf_add(&itr->oid, oid, oid_len);
201
202 itr->offsets = offsets;
203 itr->offset_len = offset_len;
reftable/iter.h
+4 -4
@@ -44,12 +44,12 @@ void iterator_set_empty(struct reftable_iterator *it);
44
45 /* iterator that produces only ref records that point to `oid` */
46 struct filtering_ref_iterator {
47 - struct strbuf oid;
47 + struct reftable_buf oid;
48 struct reftable_iterator it;
49 };
50 #define FILTERING_REF_ITERATOR_INIT \
51 { \
52 - .oid = STRBUF_INIT \
52 + .oid = REFTABLE_BUF_INIT \
53 }
54
55 void iterator_from_filtering_ref_iterator(struct reftable_iterator *,
@@ -60,7 +60,7 @@ void iterator_from_filtering_ref_iterator(struct reftable_iterator *,
60 */
61 struct indexed_table_ref_iter {
62 struct reftable_reader *r;
63 - struct strbuf oid;
63 + struct reftable_buf oid;
64
65 /* mutable */
66 uint64_t *offsets;
@@ -75,7 +75,7 @@ struct indexed_table_ref_iter {
75
76 #define INDEXED_TABLE_REF_ITER_INIT { \
77 .cur = BLOCK_ITER_INIT, \
78 - .oid = STRBUF_INIT, \
78 + .oid = REFTABLE_BUF_INIT, \
79 }
80
81 void iterator_from_indexed_table_ref_iter(struct reftable_iterator *it,
reftable/reader.c
+8 -8
@@ -350,8 +350,8 @@ static int table_iter_seek_start(struct table_iter *ti, uint8_t typ, int index)
350 static int table_iter_seek_linear(struct table_iter *ti,
351 struct reftable_record *want)
352 {
353 - struct strbuf want_key = STRBUF_INIT;
354 - struct strbuf got_key = STRBUF_INIT;
353 + struct reftable_buf want_key = REFTABLE_BUF_INIT;
354 + struct reftable_buf got_key = REFTABLE_BUF_INIT;
355 struct reftable_record rec;
356 int err;
357
@@ -401,7 +401,7 @@ static int table_iter_seek_linear(struct table_iter *ti,
401 if (err < 0)
402 goto done;
403
404 - if (strbuf_cmp(&got_key, &want_key) > 0) {
404 + if (reftable_buf_cmp(&got_key, &want_key) > 0) {
405 table_iter_block_done(&next);
406 break;
407 }
@@ -422,8 +422,8 @@ static int table_iter_seek_linear(struct table_iter *ti,
422
423 done:
424 reftable_record_release(&rec);
425 - strbuf_release(&want_key);
426 - strbuf_release(&got_key);
425 + reftable_buf_release(&want_key);
426 + reftable_buf_release(&got_key);
427 return err;
428 }
429
@@ -431,11 +431,11 @@ static int table_iter_seek_indexed(struct table_iter *ti,
431 struct reftable_record *rec)
432 {
433 struct reftable_record want_index = {
434 - .type = BLOCK_TYPE_INDEX, .u.idx = { .last_key = STRBUF_INIT }
434 + .type = BLOCK_TYPE_INDEX, .u.idx = { .last_key = REFTABLE_BUF_INIT }
435 };
436 struct reftable_record index_result = {
437 .type = BLOCK_TYPE_INDEX,
438 - .u.idx = { .last_key = STRBUF_INIT },
438 + .u.idx = { .last_key = REFTABLE_BUF_INIT },
439 };
440 int err;
441
@@ -765,7 +765,7 @@ static int reftable_reader_refs_for_unindexed(struct reftable_reader *r,
765 }
766 *filter = empty;
767
768 - strbuf_add(&filter->oid, oid, oid_len);
768 + reftable_buf_add(&filter->oid, oid, oid_len);
769 iterator_from_table_iter(&filter->it, ti);
770
771 iterator_from_filtering_ref_iterator(it, filter);
reftable/record.c
+40 -40
@@ -98,7 +98,7 @@ const unsigned char *reftable_ref_record_val2(const struct reftable_ref_record *
98 }
99 }
100
101 -static int decode_string(struct strbuf *dest, struct string_view in)
101 +static int decode_string(struct reftable_buf *dest, struct string_view in)
102 {
103 int start_len = in.len;
104 uint64_t tsize = 0;
@@ -109,8 +109,8 @@ static int decode_string(struct strbuf *dest, struct string_view in)
109 if (in.len < tsize)
110 return -1;
111
112 - strbuf_reset(dest);
113 - strbuf_add(dest, in.buf, tsize);
112 + reftable_buf_reset(dest);
113 + reftable_buf_add(dest, in.buf, tsize);
114 string_view_consume(&in, tsize);
115
116 return start_len - in.len;
@@ -133,7 +133,7 @@ static int encode_string(const char *str, struct string_view s)
133 }
134
135 int reftable_encode_key(int *restart, struct string_view dest,
136 - struct strbuf prev_key, struct strbuf key,
136 + struct reftable_buf prev_key, struct reftable_buf key,
137 uint8_t extra)
138 {
139 struct string_view start = dest;
@@ -183,7 +183,7 @@ int reftable_decode_keylen(struct string_view in,
183 return start_len - in.len;
184 }
185
186 -int reftable_decode_key(struct strbuf *last_key, uint8_t *extra,
186 +int reftable_decode_key(struct reftable_buf *last_key, uint8_t *extra,
187 struct string_view in)
188 {
189 int start_len = in.len;
@@ -200,19 +200,19 @@ int reftable_decode_key(struct strbuf *last_key, uint8_t *extra,
200 prefix_len > last_key->len)
201 return -1;
202
203 - strbuf_setlen(last_key, prefix_len);
204 - strbuf_add(last_key, in.buf, suffix_len);
203 + reftable_buf_setlen(last_key, prefix_len);
204 + reftable_buf_add(last_key, in.buf, suffix_len);
205 string_view_consume(&in, suffix_len);
206
207 return start_len - in.len;
208 }
209
210 -static void reftable_ref_record_key(const void *r, struct strbuf *dest)
210 +static void reftable_ref_record_key(const void *r, struct reftable_buf *dest)
211 {
212 const struct reftable_ref_record *rec =
213 (const struct reftable_ref_record *)r;
214 - strbuf_reset(dest);
215 - strbuf_addstr(dest, rec->refname);
214 + reftable_buf_reset(dest);
215 + reftable_buf_addstr(dest, rec->refname);
216 }
217
218 static int reftable_ref_record_copy_from(void *rec, const void *src_rec,
@@ -350,9 +350,9 @@ static int reftable_ref_record_encode(const void *rec, struct string_view s,
350 return start.len - s.len;
351 }
352
353 -static int reftable_ref_record_decode(void *rec, struct strbuf key,
353 +static int reftable_ref_record_decode(void *rec, struct reftable_buf key,
354 uint8_t val_type, struct string_view in,
355 - int hash_size, struct strbuf *scratch)
355 + int hash_size, struct reftable_buf *scratch)
356 {
357 struct reftable_ref_record *r = rec;
358 struct string_view start = in;
@@ -415,7 +415,7 @@ static int reftable_ref_record_decode(void *rec, struct strbuf key,
415 goto done;
416 }
417 string_view_consume(&in, n);
418 - r->value.symref = strbuf_detach(scratch, NULL);
418 + r->value.symref = reftable_buf_detach(scratch);
419 } break;
420
421 case REFTABLE_REF_DELETION:
@@ -465,12 +465,12 @@ static struct reftable_record_vtable reftable_ref_record_vtable = {
465 .cmp = &reftable_ref_record_cmp_void,
466 };
467
468 -static void reftable_obj_record_key(const void *r, struct strbuf *dest)
468 +static void reftable_obj_record_key(const void *r, struct reftable_buf *dest)
469 {
470 const struct reftable_obj_record *rec =
471 (const struct reftable_obj_record *)r;
472 - strbuf_reset(dest);
473 - strbuf_add(dest, rec->hash_prefix, rec->hash_prefix_len);
472 + reftable_buf_reset(dest);
473 + reftable_buf_add(dest, rec->hash_prefix, rec->hash_prefix_len);
474 }
475
476 static void reftable_obj_record_release(void *rec)
@@ -547,10 +547,10 @@ static int reftable_obj_record_encode(const void *rec, struct string_view s,
547 return start.len - s.len;
548 }
549
550 -static int reftable_obj_record_decode(void *rec, struct strbuf key,
550 +static int reftable_obj_record_decode(void *rec, struct reftable_buf key,
551 uint8_t val_type, struct string_view in,
552 int hash_size UNUSED,
553 - struct strbuf *scratch UNUSED)
553 + struct reftable_buf *scratch UNUSED)
554 {
555 struct string_view start = in;
556 struct reftable_obj_record *r = rec;
@@ -664,19 +664,19 @@ static struct reftable_record_vtable reftable_obj_record_vtable = {
664 .cmp = &reftable_obj_record_cmp_void,
665 };
666
667 -static void reftable_log_record_key(const void *r, struct strbuf *dest)
667 +static void reftable_log_record_key(const void *r, struct reftable_buf *dest)
668 {
669 const struct reftable_log_record *rec =
670 (const struct reftable_log_record *)r;
671 int len = strlen(rec->refname);
672 uint8_t i64[8];
673 uint64_t ts = 0;
674 - strbuf_reset(dest);
675 - strbuf_add(dest, (uint8_t *)rec->refname, len + 1);
674 + reftable_buf_reset(dest);
675 + reftable_buf_add(dest, (uint8_t *)rec->refname, len + 1);
676
677 ts = (~ts) - rec->update_index;
678 put_be64(&i64[0], ts);
679 - strbuf_add(dest, i64, sizeof(i64));
679 + reftable_buf_add(dest, i64, sizeof(i64));
680 }
681
682 static int reftable_log_record_copy_from(void *rec, const void *src_rec,
@@ -807,9 +807,9 @@ static int reftable_log_record_encode(const void *rec, struct string_view s,
807 return start.len - s.len;
808 }
809
810 -static int reftable_log_record_decode(void *rec, struct strbuf key,
810 +static int reftable_log_record_decode(void *rec, struct reftable_buf key,
811 uint8_t val_type, struct string_view in,
812 - int hash_size, struct strbuf *scratch)
812 + int hash_size, struct reftable_buf *scratch)
813 {
814 struct string_view start = in;
815 struct reftable_log_record *r = rec;
@@ -1027,11 +1027,11 @@ static struct reftable_record_vtable reftable_log_record_vtable = {
1027 .cmp = &reftable_log_record_cmp_void,
1028 };
1029
1030 -static void reftable_index_record_key(const void *r, struct strbuf *dest)
1030 +static void reftable_index_record_key(const void *r, struct reftable_buf *dest)
1031 {
1032 const struct reftable_index_record *rec = r;
1033 - strbuf_reset(dest);
1034 - strbuf_add(dest, rec->last_key.buf, rec->last_key.len);
1033 + reftable_buf_reset(dest);
1034 + reftable_buf_add(dest, rec->last_key.buf, rec->last_key.len);
1035 }
1036
1037 static int reftable_index_record_copy_from(void *rec, const void *src_rec,
@@ -1040,8 +1040,8 @@ static int reftable_index_record_copy_from(void *rec, const void *src_rec,
1040 struct reftable_index_record *dst = rec;
1041 const struct reftable_index_record *src = src_rec;
1042
1043 - strbuf_reset(&dst->last_key);
1044 - strbuf_add(&dst->last_key, src->last_key.buf, src->last_key.len);
1043 + reftable_buf_reset(&dst->last_key);
1044 + reftable_buf_add(&dst->last_key, src->last_key.buf, src->last_key.len);
1045 dst->offset = src->offset;
1046
1047 return 0;
@@ -1050,7 +1050,7 @@ static int reftable_index_record_copy_from(void *rec, const void *src_rec,
1050 static void reftable_index_record_release(void *rec)
1051 {
1052 struct reftable_index_record *idx = rec;
1053 - strbuf_release(&idx->last_key);
1053 + reftable_buf_release(&idx->last_key);
1054 }
1055
1056 static uint8_t reftable_index_record_val_type(const void *rec UNUSED)
@@ -1074,18 +1074,18 @@ static int reftable_index_record_encode(const void *rec, struct string_view out,
1074 return start.len - out.len;
1075 }
1076
1077 -static int reftable_index_record_decode(void *rec, struct strbuf key,
1077 +static int reftable_index_record_decode(void *rec, struct reftable_buf key,
1078 uint8_t val_type UNUSED,
1079 struct string_view in,
1080 int hash_size UNUSED,
1081 - struct strbuf *scratch UNUSED)
1081 + struct reftable_buf *scratch UNUSED)
1082 {
1083 struct string_view start = in;
1084 struct reftable_index_record *r = rec;
1085 int n = 0;
1086
1087 - strbuf_reset(&r->last_key);
1088 - strbuf_add(&r->last_key, key.buf, key.len);
1087 + reftable_buf_reset(&r->last_key);
1088 + reftable_buf_add(&r->last_key, key.buf, key.len);
1089
1090 n = get_var_int(&r->offset, &in);
1091 if (n < 0)
@@ -1101,14 +1101,14 @@ static int reftable_index_record_equal(const void *a, const void *b,
1101 struct reftable_index_record *ia = (struct reftable_index_record *) a;
1102 struct reftable_index_record *ib = (struct reftable_index_record *) b;
1103
1104 - return ia->offset == ib->offset && !strbuf_cmp(&ia->last_key, &ib->last_key);
1104 + return ia->offset == ib->offset && !reftable_buf_cmp(&ia->last_key, &ib->last_key);
1105 }
1106
1107 static int reftable_index_record_cmp(const void *_a, const void *_b)
1108 {
1109 const struct reftable_index_record *a = _a;
1110 const struct reftable_index_record *b = _b;
1111 - return strbuf_cmp(&a->last_key, &b->last_key);
1111 + return reftable_buf_cmp(&a->last_key, &b->last_key);
1112 }
1113
1114 static struct reftable_record_vtable reftable_index_record_vtable = {
@@ -1124,7 +1124,7 @@ static struct reftable_record_vtable reftable_index_record_vtable = {
1124 .cmp = &reftable_index_record_cmp,
1125 };
1126
1127 -void reftable_record_key(struct reftable_record *rec, struct strbuf *dest)
1127 +void reftable_record_key(struct reftable_record *rec, struct reftable_buf *dest)
1128 {
1129 reftable_record_vtable(rec)->key(reftable_record_data(rec), dest);
1130 }
@@ -1151,9 +1151,9 @@ uint8_t reftable_record_val_type(struct reftable_record *rec)
1151 return reftable_record_vtable(rec)->val_type(reftable_record_data(rec));
1152 }
1153
1154 -int reftable_record_decode(struct reftable_record *rec, struct strbuf key,
1154 +int reftable_record_decode(struct reftable_record *rec, struct reftable_buf key,
1155 uint8_t extra, struct string_view src, int hash_size,
1156 - struct strbuf *scratch)
1156 + struct reftable_buf *scratch)
1157 {
1158 return reftable_record_vtable(rec)->decode(reftable_record_data(rec),
1159 key, extra, src, hash_size,
@@ -1294,7 +1294,7 @@ void reftable_record_init(struct reftable_record *rec, uint8_t typ)
1294 case BLOCK_TYPE_OBJ:
1295 return;
1296 case BLOCK_TYPE_INDEX:
1297 - strbuf_init(&rec->u.idx.last_key, 0);
1297 + reftable_buf_init(&rec->u.idx.last_key);
1298 return;
1299 default:
1300 BUG("unhandled record type");
reftable/record.h
+11 -10
@@ -9,6 +9,7 @@ https://developers.google.com/open-source/licenses/bsd
9 #ifndef RECORD_H
10 #define RECORD_H
11
12 +#include "basics.h"
13 #include "system.h"
14
15 #include <stdint.h>
@@ -38,8 +39,8 @@ int put_var_int(struct string_view *dest, uint64_t val);
39
40 /* Methods for records. */
41 struct reftable_record_vtable {
41 - /* encode the key of to a uint8_t strbuf. */
42 - void (*key)(const void *rec, struct strbuf *dest);
42 + /* encode the key of to a uint8_t reftable_buf. */
43 + void (*key)(const void *rec, struct reftable_buf *dest);
44
45 /* The record type of ('r' for ref). */
46 uint8_t type;
@@ -54,9 +55,9 @@ struct reftable_record_vtable {
55 int (*encode)(const void *rec, struct string_view dest, int hash_size);
56
57 /* decode data from `src` into the record. */
57 - int (*decode)(void *rec, struct strbuf key, uint8_t extra,
58 + int (*decode)(void *rec, struct reftable_buf key, uint8_t extra,
59 struct string_view src, int hash_size,
59 - struct strbuf *scratch);
60 + struct reftable_buf *scratch);
61
62 /* deallocate and null the record. */
63 void (*release)(void *rec);
@@ -83,7 +84,7 @@ int reftable_is_block_type(uint8_t typ);
84 /* Encode `key` into `dest`. Sets `is_restart` to indicate a restart. Returns
85 * number of bytes written. */
86 int reftable_encode_key(int *is_restart, struct string_view dest,
86 - struct strbuf prev_key, struct strbuf key,
87 + struct reftable_buf prev_key, struct reftable_buf key,
88 uint8_t extra);
89
90 /* Decode a record's key lengths. */
@@ -96,13 +97,13 @@ int reftable_decode_keylen(struct string_view in,
97 * Decode into `last_key` and `extra` from `in`. `last_key` is expected to
98 * contain the decoded key of the preceding record, if any.
99 */
99 -int reftable_decode_key(struct strbuf *last_key, uint8_t *extra,
100 +int reftable_decode_key(struct reftable_buf *last_key, uint8_t *extra,
101 struct string_view in);
102
103 /* reftable_index_record are used internally to speed up lookups. */
104 struct reftable_index_record {
105 uint64_t offset; /* Offset of block */
105 - struct strbuf last_key; /* Last key of the block. */
106 + struct reftable_buf last_key; /* Last key of the block. */
107 };
108
109 /* reftable_obj_record stores an object ID => ref mapping. */
@@ -136,15 +137,15 @@ void reftable_record_init(struct reftable_record *rec, uint8_t typ);
137 /* see struct record_vtable */
138 int reftable_record_cmp(struct reftable_record *a, struct reftable_record *b);
139 int reftable_record_equal(struct reftable_record *a, struct reftable_record *b, int hash_size);
139 -void reftable_record_key(struct reftable_record *rec, struct strbuf *dest);
140 +void reftable_record_key(struct reftable_record *rec, struct reftable_buf *dest);
141 int reftable_record_copy_from(struct reftable_record *rec,
142 struct reftable_record *src, int hash_size);
143 uint8_t reftable_record_val_type(struct reftable_record *rec);
144 int reftable_record_encode(struct reftable_record *rec, struct string_view dest,
145 int hash_size);
145 -int reftable_record_decode(struct reftable_record *rec, struct strbuf key,
146 +int reftable_record_decode(struct reftable_record *rec, struct reftable_buf key,
147 uint8_t extra, struct string_view src,
147 - int hash_size, struct strbuf *scratch);
148 + int hash_size, struct reftable_buf *scratch);
149 int reftable_record_is_deletion(struct reftable_record *rec);
150
151 static inline uint8_t reftable_record_type(struct reftable_record *rec)
reftable/stack.c
+60 -60
@@ -31,13 +31,13 @@ static void reftable_addition_close(struct reftable_addition *add);
31 static int reftable_stack_reload_maybe_reuse(struct reftable_stack *st,
32 int reuse_open);
33
34 -static void stack_filename(struct strbuf *dest, struct reftable_stack *st,
34 +static void stack_filename(struct reftable_buf *dest, struct reftable_stack *st,
35 const char *name)
36 {
37 - strbuf_reset(dest);
38 - strbuf_addstr(dest, st->reftable_dir);
39 - strbuf_addstr(dest, "/");
40 - strbuf_addstr(dest, name);
37 + reftable_buf_reset(dest);
38 + reftable_buf_addstr(dest, st->reftable_dir);
39 + reftable_buf_addstr(dest, "/");
40 + reftable_buf_addstr(dest, name);
41 }
42
43 static ssize_t reftable_fd_write(void *arg, const void *data, size_t sz)
@@ -56,7 +56,7 @@ static int reftable_fd_flush(void *arg)
56 int reftable_new_stack(struct reftable_stack **dest, const char *dir,
57 const struct reftable_write_options *_opts)
58 {
59 - struct strbuf list_file_name = STRBUF_INIT;
59 + struct reftable_buf list_file_name = REFTABLE_BUF_INIT;
60 struct reftable_write_options opts = { 0 };
61 struct reftable_stack *p;
62 int err;
@@ -74,11 +74,11 @@ int reftable_new_stack(struct reftable_stack **dest, const char *dir,
74
75 *dest = NULL;
76
77 - strbuf_reset(&list_file_name);
78 - strbuf_addstr(&list_file_name, dir);
79 - strbuf_addstr(&list_file_name, "/tables.list");
77 + reftable_buf_reset(&list_file_name);
78 + reftable_buf_addstr(&list_file_name, dir);
79 + reftable_buf_addstr(&list_file_name, "/tables.list");
80
81 - p->list_file = strbuf_detach(&list_file_name, NULL);
81 + p->list_file = reftable_buf_detach(&list_file_name);
82 p->list_fd = -1;
83 p->opts = opts;
84 p->reftable_dir = reftable_strdup(dir);
@@ -208,10 +208,10 @@ void reftable_stack_destroy(struct reftable_stack *st)
208
209 if (st->readers) {
210 int i = 0;
211 - struct strbuf filename = STRBUF_INIT;
211 + struct reftable_buf filename = REFTABLE_BUF_INIT;
212 for (i = 0; i < st->readers_len; i++) {
213 const char *name = reader_name(st->readers[i]);
214 - strbuf_reset(&filename);
214 + reftable_buf_reset(&filename);
215 if (names && !has_name(names, name)) {
216 stack_filename(&filename, st, name);
217 }
@@ -222,7 +222,7 @@ void reftable_stack_destroy(struct reftable_stack *st)
222 unlink(filename.buf);
223 }
224 }
225 - strbuf_release(&filename);
225 + reftable_buf_release(&filename);
226 st->readers_len = 0;
227 REFTABLE_FREE_AND_NULL(st->readers);
228 }
@@ -260,7 +260,7 @@ static int reftable_stack_reload_once(struct reftable_stack *st,
260 size_t reused_len = 0, reused_alloc = 0, names_len;
261 size_t new_readers_len = 0;
262 struct reftable_merged_table *new_merged = NULL;
263 - struct strbuf table_path = STRBUF_INIT;
263 + struct reftable_buf table_path = REFTABLE_BUF_INIT;
264 int err = 0;
265 size_t i;
266
@@ -374,7 +374,7 @@ done:
374 reftable_free(new_readers);
375 reftable_free(reused);
376 reftable_free(cur);
377 - strbuf_release(&table_path);
377 + reftable_buf_release(&table_path);
378 return err;
379 }
380
@@ -623,14 +623,14 @@ int reftable_stack_add(struct reftable_stack *st,
623 return 0;
624 }
625
626 -static void format_name(struct strbuf *dest, uint64_t min, uint64_t max)
626 +static void format_name(struct reftable_buf *dest, uint64_t min, uint64_t max)
627 {
628 char buf[100];
629 uint32_t rnd = (uint32_t)git_rand();
630 snprintf(buf, sizeof(buf), "0x%012" PRIx64 "-0x%012" PRIx64 "-%08x",
631 min, max, rnd);
632 - strbuf_reset(dest);
633 - strbuf_addstr(dest, buf);
632 + reftable_buf_reset(dest);
633 + reftable_buf_addstr(dest, buf);
634 }
635
636 struct reftable_addition {
@@ -648,7 +648,7 @@ static int reftable_stack_init_addition(struct reftable_addition *add,
648 struct reftable_stack *st,
649 unsigned int flags)
650 {
651 - struct strbuf lock_file_name = STRBUF_INIT;
651 + struct reftable_buf lock_file_name = REFTABLE_BUF_INIT;
652 int err;
653
654 add->stack = st;
@@ -690,13 +690,13 @@ static int reftable_stack_init_addition(struct reftable_addition *add,
690 done:
691 if (err)
692 reftable_addition_close(add);
693 - strbuf_release(&lock_file_name);
693 + reftable_buf_release(&lock_file_name);
694 return err;
695 }
696
697 static void reftable_addition_close(struct reftable_addition *add)
698 {
699 - struct strbuf nm = STRBUF_INIT;
699 + struct reftable_buf nm = REFTABLE_BUF_INIT;
700 size_t i;
701
702 for (i = 0; i < add->new_tables_len; i++) {
@@ -711,7 +711,7 @@ static void reftable_addition_close(struct reftable_addition *add)
711 add->new_tables_cap = 0;
712
713 rollback_lock_file(&add->tables_list_lock);
714 - strbuf_release(&nm);
714 + reftable_buf_release(&nm);
715 }
716
717 void reftable_addition_destroy(struct reftable_addition *add)
@@ -725,7 +725,7 @@ void reftable_addition_destroy(struct reftable_addition *add)
725
726 int reftable_addition_commit(struct reftable_addition *add)
727 {
728 - struct strbuf table_list = STRBUF_INIT;
728 + struct reftable_buf table_list = REFTABLE_BUF_INIT;
729 int lock_file_fd = get_lock_file_fd(&add->tables_list_lock);
730 int err = 0;
731 size_t i;
@@ -734,16 +734,16 @@ int reftable_addition_commit(struct reftable_addition *add)
734 goto done;
735
736 for (i = 0; i < add->stack->merged->readers_len; i++) {
737 - strbuf_addstr(&table_list, add->stack->readers[i]->name);
738 - strbuf_addstr(&table_list, "\n");
737 + reftable_buf_addstr(&table_list, add->stack->readers[i]->name);
738 + reftable_buf_addstr(&table_list, "\n");
739 }
740 for (i = 0; i < add->new_tables_len; i++) {
741 - strbuf_addstr(&table_list, add->new_tables[i]);
742 - strbuf_addstr(&table_list, "\n");
741 + reftable_buf_addstr(&table_list, add->new_tables[i]);
742 + reftable_buf_addstr(&table_list, "\n");
743 }
744
745 err = write_in_full(lock_file_fd, table_list.buf, table_list.len);
746 - strbuf_release(&table_list);
746 + reftable_buf_release(&table_list);
747 if (err < 0) {
748 err = REFTABLE_IO_ERROR;
749 goto done;
@@ -837,19 +837,19 @@ int reftable_addition_add(struct reftable_addition *add,
837 void *arg),
838 void *arg)
839 {
840 - struct strbuf temp_tab_file_name = STRBUF_INIT;
841 - struct strbuf tab_file_name = STRBUF_INIT;
842 - struct strbuf next_name = STRBUF_INIT;
840 + struct reftable_buf temp_tab_file_name = REFTABLE_BUF_INIT;
841 + struct reftable_buf tab_file_name = REFTABLE_BUF_INIT;
842 + struct reftable_buf next_name = REFTABLE_BUF_INIT;
843 struct reftable_writer *wr = NULL;
844 struct tempfile *tab_file = NULL;
845 int err = 0;
846 int tab_fd;
847
848 - strbuf_reset(&next_name);
848 + reftable_buf_reset(&next_name);
849 format_name(&next_name, add->next_update_index, add->next_update_index);
850
851 stack_filename(&temp_tab_file_name, add->stack, next_name.buf);
852 - strbuf_addstr(&temp_tab_file_name, ".temp.XXXXXX");
852 + reftable_buf_addstr(&temp_tab_file_name, ".temp.XXXXXX");
853
854 tab_file = mks_tempfile(temp_tab_file_name.buf);
855 if (!tab_file) {
@@ -894,7 +894,7 @@ int reftable_addition_add(struct reftable_addition *add,
894 }
895
896 format_name(&next_name, wr->min_update_index, wr->max_update_index);
897 - strbuf_addstr(&next_name, ".ref");
897 + reftable_buf_addstr(&next_name, ".ref");
898 stack_filename(&tab_file_name, add->stack, next_name.buf);
899
900 /*
@@ -913,13 +913,13 @@ int reftable_addition_add(struct reftable_addition *add,
913 err = REFTABLE_OUT_OF_MEMORY_ERROR;
914 goto done;
915 }
916 - add->new_tables[add->new_tables_len++] = strbuf_detach(&next_name, NULL);
916 + add->new_tables[add->new_tables_len++] = reftable_buf_detach(&next_name);
917
918 done:
919 delete_tempfile(&tab_file);
920 - strbuf_release(&temp_tab_file_name);
921 - strbuf_release(&tab_file_name);
922 - strbuf_release(&next_name);
920 + reftable_buf_release(&temp_tab_file_name);
921 + reftable_buf_release(&tab_file_name);
922 + reftable_buf_release(&next_name);
923 reftable_writer_free(wr);
924 return err;
925 }
@@ -938,8 +938,8 @@ static int stack_compact_locked(struct reftable_stack *st,
938 struct reftable_log_expiry_config *config,
939 struct tempfile **tab_file_out)
940 {
941 - struct strbuf next_name = STRBUF_INIT;
942 - struct strbuf tab_file_path = STRBUF_INIT;
941 + struct reftable_buf next_name = REFTABLE_BUF_INIT;
942 + struct reftable_buf tab_file_path = REFTABLE_BUF_INIT;
943 struct reftable_writer *wr = NULL;
944 struct tempfile *tab_file;
945 int tab_fd, err = 0;
@@ -948,7 +948,7 @@ static int stack_compact_locked(struct reftable_stack *st,
948 reftable_reader_min_update_index(st->readers[first]),
949 reftable_reader_max_update_index(st->readers[last]));
950 stack_filename(&tab_file_path, st, next_name.buf);
951 - strbuf_addstr(&tab_file_path, ".temp.XXXXXX");
951 + reftable_buf_addstr(&tab_file_path, ".temp.XXXXXX");
952
953 tab_file = mks_tempfile(tab_file_path.buf);
954 if (!tab_file) {
@@ -986,8 +986,8 @@ static int stack_compact_locked(struct reftable_stack *st,
986 done:
987 delete_tempfile(&tab_file);
988 reftable_writer_free(wr);
989 - strbuf_release(&next_name);
990 - strbuf_release(&tab_file_path);
989 + reftable_buf_release(&next_name);
990 + reftable_buf_release(&tab_file_path);
991 return err;
992 }
993
@@ -1111,10 +1111,10 @@ static int stack_compact_range(struct reftable_stack *st,
1111 struct reftable_log_expiry_config *expiry,
1112 unsigned int flags)
1113 {
1114 - struct strbuf tables_list_buf = STRBUF_INIT;
1115 - struct strbuf new_table_name = STRBUF_INIT;
1116 - struct strbuf new_table_path = STRBUF_INIT;
1117 - struct strbuf table_name = STRBUF_INIT;
1114 + struct reftable_buf tables_list_buf = REFTABLE_BUF_INIT;
1115 + struct reftable_buf new_table_name = REFTABLE_BUF_INIT;
1116 + struct reftable_buf new_table_path = REFTABLE_BUF_INIT;
1117 + struct reftable_buf table_name = REFTABLE_BUF_INIT;
1118 struct lock_file tables_list_lock = LOCK_INIT;
1119 struct lock_file *table_locks = NULL;
1120 struct tempfile *new_table = NULL;
@@ -1372,7 +1372,7 @@ static int stack_compact_range(struct reftable_stack *st,
1372 if (!is_empty_table) {
1373 format_name(&new_table_name, st->readers[first]->min_update_index,
1374 st->readers[last]->max_update_index);
1375 - strbuf_addstr(&new_table_name, ".ref");
1375 + reftable_buf_addstr(&new_table_name, ".ref");
1376 stack_filename(&new_table_path, st, new_table_name.buf);
1377
1378 err = rename_tempfile(&new_table, new_table_path.buf);
@@ -1388,16 +1388,16 @@ static int stack_compact_range(struct reftable_stack *st,
1388 * simply skip writing it.
1389 */
1390 for (i = 0; i < first_to_replace; i++) {
1391 - strbuf_addstr(&tables_list_buf, names[i]);
1392 - strbuf_addstr(&tables_list_buf, "\n");
1391 + reftable_buf_addstr(&tables_list_buf, names[i]);
1392 + reftable_buf_addstr(&tables_list_buf, "\n");
1393 }
1394 if (!is_empty_table) {
1395 - strbuf_addstr(&tables_list_buf, new_table_name.buf);
1396 - strbuf_addstr(&tables_list_buf, "\n");
1395 + reftable_buf_addstr(&tables_list_buf, new_table_name.buf);
1396 + reftable_buf_addstr(&tables_list_buf, "\n");
1397 }
1398 for (i = last_to_replace + 1; names[i]; i++) {
1399 - strbuf_addstr(&tables_list_buf, names[i]);
1400 - strbuf_addstr(&tables_list_buf, "\n");
1399 + reftable_buf_addstr(&tables_list_buf, names[i]);
1400 + reftable_buf_addstr(&tables_list_buf, "\n");
1401 }
1402
1403 err = write_in_full(get_lock_file_fd(&tables_list_lock),
@@ -1449,10 +1449,10 @@ done:
1449 reftable_free(table_locks);
1450
1451 delete_tempfile(&new_table);
1452 - strbuf_release(&new_table_name);
1453 - strbuf_release(&new_table_path);
1454 - strbuf_release(&tables_list_buf);
1455 - strbuf_release(&table_name);
1452 + reftable_buf_release(&new_table_name);
1453 + reftable_buf_release(&new_table_path);
1454 + reftable_buf_release(&tables_list_buf);
1455 + reftable_buf_release(&table_name);
1456 free_names(names);
1457
1458 if (err == REFTABLE_LOCK_ERROR)
@@ -1666,7 +1666,7 @@ static void remove_maybe_stale_table(struct reftable_stack *st, uint64_t max,
1666 uint64_t update_idx = 0;
1667 struct reftable_block_source src = { NULL };
1668 struct reftable_reader *rd = NULL;
1669 - struct strbuf table_path = STRBUF_INIT;
1669 + struct reftable_buf table_path = REFTABLE_BUF_INIT;
1670 stack_filename(&table_path, st, name);
1671
1672 err = reftable_block_source_from_file(&src, table_path.buf);
@@ -1684,7 +1684,7 @@ static void remove_maybe_stale_table(struct reftable_stack *st, uint64_t max,
1684 unlink(table_path.buf);
1685 }
1686 done:
1687 - strbuf_release(&table_path);
1687 + reftable_buf_release(&table_path);
1688 }
1689
1690 static int reftable_stack_clean_locked(struct reftable_stack *st)
reftable/system.h
-1
@@ -13,7 +13,6 @@ https://developers.google.com/open-source/licenses/bsd
13
14 #include "git-compat-util.h"
15 #include "lockfile.h"
16 -#include "strbuf.h"
16 #include "tempfile.h"
17 #include "hash.h" /* hash ID, sizes.*/
18 #include "dir.h" /* remove_dir_recursively, for tests.*/
reftable/writer.c
+33 -33
@@ -115,7 +115,7 @@ static int writer_reinit_block_writer(struct reftable_writer *w, uint8_t typ)
115 if (w->next == 0)
116 block_start = header_size(writer_version(w));
117
118 - strbuf_reset(&w->last_key);
118 + reftable_buf_reset(&w->last_key);
119 ret = block_writer_init(&w->block_writer_data, typ, w->block,
120 w->opts.block_size, block_start,
121 hash_size(w->opts.hash_id));
@@ -146,8 +146,8 @@ int reftable_writer_new(struct reftable_writer **out,
146 if (opts.block_size >= (1 << 24))
147 BUG("configured block size exceeds 16MB");
148
149 - strbuf_init(&wp->block_writer_data.last_key, 0);
150 - strbuf_init(&wp->last_key, 0);
149 + reftable_buf_init(&wp->block_writer_data.last_key);
150 + reftable_buf_init(&wp->last_key);
151 REFTABLE_CALLOC_ARRAY(wp->block, opts.block_size);
152 if (!wp->block) {
153 reftable_free(wp);
@@ -179,7 +179,7 @@ static void writer_release(struct reftable_writer *w)
179 block_writer_release(&w->block_writer_data);
180 w->block_writer = NULL;
181 writer_clear_index(w);
182 - strbuf_release(&w->last_key);
182 + reftable_buf_release(&w->last_key);
183 }
184 }
185
@@ -190,7 +190,7 @@ void reftable_writer_free(struct reftable_writer *w)
190 }
191
192 struct obj_index_tree_node {
193 - struct strbuf hash;
193 + struct reftable_buf hash;
194 uint64_t *offsets;
195 size_t offset_len;
196 size_t offset_cap;
@@ -198,16 +198,16 @@ struct obj_index_tree_node {
198
199 #define OBJ_INDEX_TREE_NODE_INIT \
200 { \
201 - .hash = STRBUF_INIT \
201 + .hash = REFTABLE_BUF_INIT \
202 }
203
204 static int obj_index_tree_node_compare(const void *a, const void *b)
205 {
206 - return strbuf_cmp(&((const struct obj_index_tree_node *)a)->hash,
206 + return reftable_buf_cmp(&((const struct obj_index_tree_node *)a)->hash,
207 &((const struct obj_index_tree_node *)b)->hash);
208 }
209
210 -static int writer_index_hash(struct reftable_writer *w, struct strbuf *hash)
210 +static int writer_index_hash(struct reftable_writer *w, struct reftable_buf *hash)
211 {
212 uint64_t off = w->next;
213 struct obj_index_tree_node want = { .hash = *hash };
@@ -224,8 +224,8 @@ static int writer_index_hash(struct reftable_writer *w, struct strbuf *hash)
224
225 *key = empty;
226
227 - strbuf_reset(&key->hash);
228 - strbuf_add(&key->hash, hash->buf, hash->len);
227 + reftable_buf_reset(&key->hash);
228 + reftable_buf_add(&key->hash, hash->buf, hash->len);
229 tree_insert(&w->obj_index_tree, key,
230 &obj_index_tree_node_compare);
231 } else {
@@ -246,17 +246,17 @@ static int writer_index_hash(struct reftable_writer *w, struct strbuf *hash)
246 static int writer_add_record(struct reftable_writer *w,
247 struct reftable_record *rec)
248 {
249 - struct strbuf key = STRBUF_INIT;
249 + struct reftable_buf key = REFTABLE_BUF_INIT;
250 int err;
251
252 reftable_record_key(rec, &key);
253 - if (strbuf_cmp(&w->last_key, &key) >= 0) {
253 + if (reftable_buf_cmp(&w->last_key, &key) >= 0) {
254 err = REFTABLE_API_ERROR;
255 goto done;
256 }
257
258 - strbuf_reset(&w->last_key);
259 - strbuf_add(&w->last_key, key.buf, key.len);
258 + reftable_buf_reset(&w->last_key);
259 + reftable_buf_add(&w->last_key, key.buf, key.len);
260 if (!w->block_writer) {
261 err = writer_reinit_block_writer(w, reftable_record_type(rec));
262 if (err < 0)
@@ -303,7 +303,7 @@ static int writer_add_record(struct reftable_writer *w,
303 }
304
305 done:
306 - strbuf_release(&key);
306 + reftable_buf_release(&key);
307 return err;
308 }
309
@@ -316,7 +316,7 @@ int reftable_writer_add_ref(struct reftable_writer *w,
316 .ref = *ref
317 },
318 };
319 - struct strbuf buf = STRBUF_INIT;
319 + struct reftable_buf buf = REFTABLE_BUF_INIT;
320 int err;
321
322 if (!ref->refname ||
@@ -331,7 +331,7 @@ int reftable_writer_add_ref(struct reftable_writer *w,
331 goto out;
332
333 if (!w->opts.skip_index_objects && reftable_ref_record_val1(ref)) {
334 - strbuf_add(&buf, (char *)reftable_ref_record_val1(ref),
334 + reftable_buf_add(&buf, (char *)reftable_ref_record_val1(ref),
335 hash_size(w->opts.hash_id));
336
337 err = writer_index_hash(w, &buf);
@@ -340,8 +340,8 @@ int reftable_writer_add_ref(struct reftable_writer *w,
340 }
341
342 if (!w->opts.skip_index_objects && reftable_ref_record_val2(ref)) {
343 - strbuf_reset(&buf);
344 - strbuf_add(&buf, reftable_ref_record_val2(ref),
343 + reftable_buf_reset(&buf);
344 + reftable_buf_add(&buf, reftable_ref_record_val2(ref),
345 hash_size(w->opts.hash_id));
346
347 err = writer_index_hash(w, &buf);
@@ -352,7 +352,7 @@ int reftable_writer_add_ref(struct reftable_writer *w,
352 err = 0;
353
354 out:
355 - strbuf_release(&buf);
355 + reftable_buf_release(&buf);
356 return err;
357 }
358
@@ -393,7 +393,7 @@ int reftable_writer_add_log(struct reftable_writer *w,
393 struct reftable_log_record *log)
394 {
395 char *input_log_message = NULL;
396 - struct strbuf cleaned_message = STRBUF_INIT;
396 + struct reftable_buf cleaned_message = REFTABLE_BUF_INIT;
397 int err = 0;
398
399 if (log->value_type == REFTABLE_LOG_DELETION)
@@ -404,24 +404,24 @@ int reftable_writer_add_log(struct reftable_writer *w,
404
405 input_log_message = log->value.update.message;
406 if (!w->opts.exact_log_message && log->value.update.message) {
407 - strbuf_addstr(&cleaned_message, log->value.update.message);
407 + reftable_buf_addstr(&cleaned_message, log->value.update.message);
408 while (cleaned_message.len &&
409 cleaned_message.buf[cleaned_message.len - 1] == '\n')
410 - strbuf_setlen(&cleaned_message,
410 + reftable_buf_setlen(&cleaned_message,
411 cleaned_message.len - 1);
412 if (strchr(cleaned_message.buf, '\n')) {
413 /* multiple lines not allowed. */
414 err = REFTABLE_API_ERROR;
415 goto done;
416 }
417 - strbuf_addstr(&cleaned_message, "\n");
417 + reftable_buf_addstr(&cleaned_message, "\n");
418 log->value.update.message = cleaned_message.buf;
419 }
420
421 err = reftable_writer_add_log_verbatim(w, log);
422 log->value.update.message = input_log_message;
423 done:
424 - strbuf_release(&cleaned_message);
424 + reftable_buf_release(&cleaned_message);
425 return err;
426 }
427
@@ -504,7 +504,7 @@ static int writer_finish_section(struct reftable_writer *w)
504 return err;
505
506 for (i = 0; i < idx_len; i++)
507 - strbuf_release(&idx[i].last_key);
507 + reftable_buf_release(&idx[i].last_key);
508 reftable_free(idx);
509 }
510
@@ -521,13 +521,13 @@ static int writer_finish_section(struct reftable_writer *w)
521 bstats->max_index_level = max_level;
522
523 /* Reinit lastKey, as the next section can start with any key. */
524 - strbuf_reset(&w->last_key);
524 + reftable_buf_reset(&w->last_key);
525
526 return 0;
527 }
528
529 struct common_prefix_arg {
530 - struct strbuf *last;
530 + struct reftable_buf *last;
531 int max;
532 };
533
@@ -594,7 +594,7 @@ static void object_record_free(void *void_arg UNUSED, void *key)
594 struct obj_index_tree_node *entry = key;
595
596 REFTABLE_FREE_AND_NULL(entry->offsets);
597 - strbuf_release(&entry->hash);
597 + reftable_buf_release(&entry->hash);
598 reftable_free(entry);
599 }
600
@@ -708,7 +708,7 @@ done:
708 static void writer_clear_index(struct reftable_writer *w)
709 {
710 for (size_t i = 0; w->index && i < w->index_len; i++)
711 - strbuf_release(&w->index[i].last_key);
711 + reftable_buf_release(&w->index[i].last_key);
712 REFTABLE_FREE_AND_NULL(w->index);
713 w->index_len = 0;
714 w->index_cap = 0;
@@ -717,7 +717,7 @@ static void writer_clear_index(struct reftable_writer *w)
717 static int writer_flush_nonempty_block(struct reftable_writer *w)
718 {
719 struct reftable_index_record index_record = {
720 - .last_key = STRBUF_INIT,
720 + .last_key = REFTABLE_BUF_INIT,
721 };
722 uint8_t typ = block_writer_type(w->block_writer);
723 struct reftable_block_stats *bstats;
@@ -777,8 +777,8 @@ static int writer_flush_nonempty_block(struct reftable_writer *w)
777 return REFTABLE_OUT_OF_MEMORY_ERROR;
778
779 index_record.offset = w->next;
780 - strbuf_reset(&index_record.last_key);
781 - strbuf_add(&index_record.last_key, w->block_writer->last_key.buf,
780 + reftable_buf_reset(&index_record.last_key);
781 + reftable_buf_add(&index_record.last_key, w->block_writer->last_key.buf,
782 w->block_writer->last_key.len);
783 w->index[w->index_len] = index_record;
784 w->index_len++;
reftable/writer.h
+1 -1
@@ -19,7 +19,7 @@ struct reftable_writer {
19 int (*flush)(void *);
20 void *write_arg;
21 int pending_padding;
22 - struct strbuf last_key;
22 + struct reftable_buf last_key;
23
24 /* offset of next block to write. */
25 uint64_t next;
t/unit-tests/lib-reftable.c
+2 -2
@@ -19,7 +19,7 @@ static int strbuf_writer_flush(void *arg UNUSED)
19 return 0;
20 }
21
22 -struct reftable_writer *t_reftable_strbuf_writer(struct strbuf *buf,
22 +struct reftable_writer *t_reftable_strbuf_writer(struct reftable_buf *buf,
23 struct reftable_write_options *opts)
24 {
25 struct reftable_writer *writer;
@@ -29,7 +29,7 @@ struct reftable_writer *t_reftable_strbuf_writer(struct strbuf *buf,
29 return writer;
30 }
31
32 -void t_reftable_write_to_buf(struct strbuf *buf,
32 +void t_reftable_write_to_buf(struct reftable_buf *buf,
33 struct reftable_ref_record *refs,
34 size_t nrefs,
35 struct reftable_log_record *logs,
t/unit-tests/lib-reftable.h
+4 -3
@@ -2,15 +2,16 @@
2 #define LIB_REFTABLE_H
3
4 #include "git-compat-util.h"
5 -#include "strbuf.h"
5 #include "reftable/reftable-writer.h"
6
7 +struct reftable_buf;
8 +
9 void t_reftable_set_hash(uint8_t *p, int i, uint32_t id);
10
10 -struct reftable_writer *t_reftable_strbuf_writer(struct strbuf *buf,
11 +struct reftable_writer *t_reftable_strbuf_writer(struct reftable_buf *buf,
12 struct reftable_write_options *opts);
13
13 -void t_reftable_write_to_buf(struct strbuf *buf,
14 +void t_reftable_write_to_buf(struct reftable_buf *buf,
15 struct reftable_ref_record *refs,
16 size_t nrecords,
17 struct reftable_log_record *logs,
t/unit-tests/t-reftable-basics.c
+8 -8
@@ -99,8 +99,8 @@ int cmd_main(int argc UNUSED, const char *argv[] UNUSED)
99 }
100
101 if_test ("common_prefix_size works") {
102 - struct strbuf a = STRBUF_INIT;
103 - struct strbuf b = STRBUF_INIT;
102 + struct reftable_buf a = REFTABLE_BUF_INIT;
103 + struct reftable_buf b = REFTABLE_BUF_INIT;
104 struct {
105 const char *a, *b;
106 int want;
@@ -113,14 +113,14 @@ int cmd_main(int argc UNUSED, const char *argv[] UNUSED)
113 };
114
115 for (size_t i = 0; i < ARRAY_SIZE(cases); i++) {
116 - strbuf_addstr(&a, cases[i].a);
117 - strbuf_addstr(&b, cases[i].b);
116 + reftable_buf_addstr(&a, cases[i].a);
117 + reftable_buf_addstr(&b, cases[i].b);
118 check_int(common_prefix_size(&a, &b), ==, cases[i].want);
119 - strbuf_reset(&a);
120 - strbuf_reset(&b);
119 + reftable_buf_reset(&a);
120 + reftable_buf_reset(&b);
121 }
122 - strbuf_release(&a);
123 - strbuf_release(&b);
122 + reftable_buf_release(&a);
123 + reftable_buf_release(&b);
124 }
125
126 if_test ("put_be24 and get_be24 work") {
t/unit-tests/t-reftable-block.c
+21 -21
@@ -20,7 +20,7 @@ static void t_ref_block_read_write(void)
20 const size_t block_size = 1024;
21 struct reftable_block block = { 0 };
22 struct block_writer bw = {
23 - .last_key = STRBUF_INIT,
23 + .last_key = REFTABLE_BUF_INIT,
24 };
25 struct reftable_record rec = {
26 .type = BLOCK_TYPE_REF,
@@ -29,7 +29,7 @@ static void t_ref_block_read_write(void)
29 int ret;
30 struct block_reader br = { 0 };
31 struct block_iter it = BLOCK_ITER_INIT;
32 - struct strbuf want = STRBUF_INIT, buf = STRBUF_INIT;
32 + struct reftable_buf want = REFTABLE_BUF_INIT, buf = REFTABLE_BUF_INIT;
33
34 REFTABLE_CALLOC_ARRAY(block.data, block_size);
35 check(block.data != NULL);
@@ -100,8 +100,8 @@ static void t_ref_block_read_write(void)
100 block_iter_close(&it);
101 reftable_record_release(&rec);
102 reftable_block_done(&br.block);
103 - strbuf_release(&want);
104 - strbuf_release(&buf);
103 + reftable_buf_release(&want);
104 + reftable_buf_release(&buf);
105 for (i = 0; i < N; i++)
106 reftable_record_release(&recs[i]);
107 }
@@ -114,7 +114,7 @@ static void t_log_block_read_write(void)
114 const size_t block_size = 2048;
115 struct reftable_block block = { 0 };
116 struct block_writer bw = {
117 - .last_key = STRBUF_INIT,
117 + .last_key = REFTABLE_BUF_INIT,
118 };
119 struct reftable_record rec = {
120 .type = BLOCK_TYPE_LOG,
@@ -123,7 +123,7 @@ static void t_log_block_read_write(void)
123 int ret;
124 struct block_reader br = { 0 };
125 struct block_iter it = BLOCK_ITER_INIT;
126 - struct strbuf want = STRBUF_INIT, buf = STRBUF_INIT;
126 + struct reftable_buf want = REFTABLE_BUF_INIT, buf = REFTABLE_BUF_INIT;
127
128 REFTABLE_CALLOC_ARRAY(block.data, block_size);
129 check(block.data != NULL);
@@ -166,8 +166,8 @@ static void t_log_block_read_write(void)
166
167 for (i = 0; i < N; i++) {
168 block_iter_reset(&it);
169 - strbuf_reset(&want);
170 - strbuf_addstr(&want, recs[i].u.log.refname);
169 + reftable_buf_reset(&want);
170 + reftable_buf_addstr(&want, recs[i].u.log.refname);
171
172 ret = block_iter_seek_key(&it, &br, &want);
173 check_int(ret, ==, 0);
@@ -190,8 +190,8 @@ static void t_log_block_read_write(void)
190 block_iter_close(&it);
191 reftable_record_release(&rec);
192 reftable_block_done(&br.block);
193 - strbuf_release(&want);
194 - strbuf_release(&buf);
193 + reftable_buf_release(&want);
194 + reftable_buf_release(&buf);
195 for (i = 0; i < N; i++)
196 reftable_record_release(&recs[i]);
197 }
@@ -204,7 +204,7 @@ static void t_obj_block_read_write(void)
204 const size_t block_size = 1024;
205 struct reftable_block block = { 0 };
206 struct block_writer bw = {
207 - .last_key = STRBUF_INIT,
207 + .last_key = REFTABLE_BUF_INIT,
208 };
209 struct reftable_record rec = {
210 .type = BLOCK_TYPE_OBJ,
@@ -213,7 +213,7 @@ static void t_obj_block_read_write(void)
213 int ret;
214 struct block_reader br = { 0 };
215 struct block_iter it = BLOCK_ITER_INIT;
216 - struct strbuf want = STRBUF_INIT, buf = STRBUF_INIT;
216 + struct reftable_buf want = REFTABLE_BUF_INIT, buf = REFTABLE_BUF_INIT;
217
218 REFTABLE_CALLOC_ARRAY(block.data, block_size);
219 check(block.data != NULL);
@@ -273,8 +273,8 @@ static void t_obj_block_read_write(void)
273 block_iter_close(&it);
274 reftable_record_release(&rec);
275 reftable_block_done(&br.block);
276 - strbuf_release(&want);
277 - strbuf_release(&buf);
276 + reftable_buf_release(&want);
277 + reftable_buf_release(&buf);
278 for (i = 0; i < N; i++)
279 reftable_record_release(&recs[i]);
280 }
@@ -287,17 +287,17 @@ static void t_index_block_read_write(void)
287 const size_t block_size = 1024;
288 struct reftable_block block = { 0 };
289 struct block_writer bw = {
290 - .last_key = STRBUF_INIT,
290 + .last_key = REFTABLE_BUF_INIT,
291 };
292 struct reftable_record rec = {
293 .type = BLOCK_TYPE_INDEX,
294 - .u.idx.last_key = STRBUF_INIT,
294 + .u.idx.last_key = REFTABLE_BUF_INIT,
295 };
296 size_t i = 0;
297 int ret;
298 struct block_reader br = { 0 };
299 struct block_iter it = BLOCK_ITER_INIT;
300 - struct strbuf want = STRBUF_INIT, buf = STRBUF_INIT;
300 + struct reftable_buf want = REFTABLE_BUF_INIT, buf = REFTABLE_BUF_INIT;
301
302 REFTABLE_CALLOC_ARRAY(block.data, block_size);
303 check(block.data != NULL);
@@ -312,9 +312,9 @@ static void t_index_block_read_write(void)
312
313 snprintf(buf, sizeof(buf), "branch%02"PRIuMAX, (uintmax_t)i);
314
315 - strbuf_init(&recs[i].u.idx.last_key, 9);
315 + reftable_buf_init(&recs[i].u.idx.last_key);
316 recs[i].type = BLOCK_TYPE_INDEX;
317 - strbuf_addstr(&recs[i].u.idx.last_key, buf);
317 + reftable_buf_addstr(&recs[i].u.idx.last_key, buf);
318 recs[i].u.idx.offset = i;
319
320 ret = block_writer_add(&bw, &recs[i]);
@@ -365,8 +365,8 @@ static void t_index_block_read_write(void)
365 block_iter_close(&it);
366 reftable_record_release(&rec);
367 reftable_block_done(&br.block);
368 - strbuf_release(&want);
369 - strbuf_release(&buf);
368 + reftable_buf_release(&want);
369 + reftable_buf_release(&buf);
370 for (i = 0; i < N; i++)
371 reftable_record_release(&recs[i]);
372 }
t/unit-tests/t-reftable-merged.c
+13 -13
@@ -20,7 +20,7 @@ static struct reftable_merged_table *
20 merged_table_from_records(struct reftable_ref_record **refs,
21 struct reftable_block_source **source,
22 struct reftable_reader ***readers, const size_t *sizes,
23 - struct strbuf *buf, const size_t n)
23 + struct reftable_buf *buf, const size_t n)
24 {
25 struct reftable_merged_table *mt = NULL;
26 struct reftable_write_options opts = {
@@ -75,7 +75,7 @@ static void t_merged_single_record(void)
75
76 struct reftable_ref_record *refs[] = { r1, r2, r3 };
77 size_t sizes[] = { ARRAY_SIZE(r1), ARRAY_SIZE(r2), ARRAY_SIZE(r3) };
78 - struct strbuf bufs[3] = { STRBUF_INIT, STRBUF_INIT, STRBUF_INIT };
78 + struct reftable_buf bufs[3] = { REFTABLE_BUF_INIT, REFTABLE_BUF_INIT, REFTABLE_BUF_INIT };
79 struct reftable_block_source *bs = NULL;
80 struct reftable_reader **readers = NULL;
81 struct reftable_merged_table *mt =
@@ -97,7 +97,7 @@ static void t_merged_single_record(void)
97 readers_destroy(readers, 3);
98 reftable_merged_table_free(mt);
99 for (size_t i = 0; i < ARRAY_SIZE(bufs); i++)
100 - strbuf_release(&bufs[i]);
100 + reftable_buf_release(&bufs[i]);
101 reftable_free(bs);
102 }
103
@@ -152,7 +152,7 @@ static void t_merged_refs(void)
152
153 struct reftable_ref_record *refs[] = { r1, r2, r3 };
154 size_t sizes[3] = { ARRAY_SIZE(r1), ARRAY_SIZE(r2), ARRAY_SIZE(r3) };
155 - struct strbuf bufs[3] = { STRBUF_INIT, STRBUF_INIT, STRBUF_INIT };
155 + struct reftable_buf bufs[3] = { REFTABLE_BUF_INIT, REFTABLE_BUF_INIT, REFTABLE_BUF_INIT };
156 struct reftable_block_source *bs = NULL;
157 struct reftable_reader **readers = NULL;
158 struct reftable_merged_table *mt =
@@ -192,7 +192,7 @@ static void t_merged_refs(void)
192 reftable_free(out);
193
194 for (i = 0; i < 3; i++)
195 - strbuf_release(&bufs[i]);
195 + reftable_buf_release(&bufs[i]);
196 readers_destroy(readers, 3);
197 reftable_merged_table_free(mt);
198 reftable_free(bs);
@@ -234,8 +234,8 @@ static void t_merged_seek_multiple_times(void)
234 size_t sizes[] = {
235 ARRAY_SIZE(r1), ARRAY_SIZE(r2),
236 };
237 - struct strbuf bufs[] = {
238 - STRBUF_INIT, STRBUF_INIT,
237 + struct reftable_buf bufs[] = {
238 + REFTABLE_BUF_INIT, REFTABLE_BUF_INIT,
239 };
240 struct reftable_block_source *sources = NULL;
241 struct reftable_reader **readers = NULL;
@@ -265,7 +265,7 @@ static void t_merged_seek_multiple_times(void)
265 }
266
267 for (size_t i = 0; i < ARRAY_SIZE(bufs); i++)
268 - strbuf_release(&bufs[i]);
268 + reftable_buf_release(&bufs[i]);
269 readers_destroy(readers, ARRAY_SIZE(refs));
270 reftable_ref_record_release(&rec);
271 reftable_iterator_destroy(&it);
@@ -277,7 +277,7 @@ static struct reftable_merged_table *
277 merged_table_from_log_records(struct reftable_log_record **logs,
278 struct reftable_block_source **source,
279 struct reftable_reader ***readers, const size_t *sizes,
280 - struct strbuf *buf, const size_t n)
280 + struct reftable_buf *buf, const size_t n)
281 {
282 struct reftable_merged_table *mt = NULL;
283 struct reftable_write_options opts = {
@@ -361,7 +361,7 @@ static void t_merged_logs(void)
361
362 struct reftable_log_record *logs[] = { r1, r2, r3 };
363 size_t sizes[3] = { ARRAY_SIZE(r1), ARRAY_SIZE(r2), ARRAY_SIZE(r3) };
364 - struct strbuf bufs[3] = { STRBUF_INIT, STRBUF_INIT, STRBUF_INIT };
364 + struct reftable_buf bufs[3] = { REFTABLE_BUF_INIT, REFTABLE_BUF_INIT, REFTABLE_BUF_INIT };
365 struct reftable_block_source *bs = NULL;
366 struct reftable_reader **readers = NULL;
367 struct reftable_merged_table *mt = merged_table_from_log_records(
@@ -412,7 +412,7 @@ static void t_merged_logs(void)
412 reftable_free(out);
413
414 for (i = 0; i < 3; i++)
415 - strbuf_release(&bufs[i]);
415 + reftable_buf_release(&bufs[i]);
416 readers_destroy(readers, 3);
417 reftable_merged_table_free(mt);
418 reftable_free(bs);
@@ -421,7 +421,7 @@ static void t_merged_logs(void)
421 static void t_default_write_opts(void)
422 {
423 struct reftable_write_options opts = { 0 };
424 - struct strbuf buf = STRBUF_INIT;
424 + struct reftable_buf buf = REFTABLE_BUF_INIT;
425 struct reftable_writer *w = t_reftable_strbuf_writer(&buf, &opts);
426 struct reftable_ref_record rec = {
427 .refname = (char *) "master",
@@ -457,7 +457,7 @@ static void t_default_write_opts(void)
457
458 reftable_reader_decref(rd);
459 reftable_merged_table_free(merged);
460 - strbuf_release(&buf);
460 + reftable_buf_release(&buf);
461 }
462
463
t/unit-tests/t-reftable-reader.c
+4 -4
@@ -16,7 +16,7 @@ static int t_reader_seek_once(void)
16 struct reftable_ref_record ref = { 0 };
17 struct reftable_iterator it = { 0 };
18 struct reftable_reader *reader;
19 - struct strbuf buf = STRBUF_INIT;
19 + struct reftable_buf buf = REFTABLE_BUF_INIT;
20 int ret;
21
22 t_reftable_write_to_buf(&buf, records, ARRAY_SIZE(records), NULL, 0, NULL);
@@ -40,7 +40,7 @@ static int t_reader_seek_once(void)
40 reftable_ref_record_release(&ref);
41 reftable_iterator_destroy(&it);
42 reftable_reader_decref(reader);
43 - strbuf_release(&buf);
43 + reftable_buf_release(&buf);
44 return 0;
45 }
46
@@ -57,7 +57,7 @@ static int t_reader_reseek(void)
57 struct reftable_ref_record ref = { 0 };
58 struct reftable_iterator it = { 0 };
59 struct reftable_reader *reader;
60 - struct strbuf buf = STRBUF_INIT;
60 + struct reftable_buf buf = REFTABLE_BUF_INIT;
61 int ret;
62
63 t_reftable_write_to_buf(&buf, records, ARRAY_SIZE(records), NULL, 0, NULL);
@@ -84,7 +84,7 @@ static int t_reader_reseek(void)
84 reftable_ref_record_release(&ref);
85 reftable_iterator_destroy(&it);
86 reftable_reader_decref(reader);
87 - strbuf_release(&buf);
87 + reftable_buf_release(&buf);
88 return 0;
89 }
90
t/unit-tests/t-reftable-readwrite.c
+46 -46
@@ -18,12 +18,12 @@ static const int update_index = 5;
18
19 static void t_buffer(void)
20 {
21 - struct strbuf buf = STRBUF_INIT;
21 + struct reftable_buf buf = REFTABLE_BUF_INIT;
22 struct reftable_block_source source = { 0 };
23 struct reftable_block out = { 0 };
24 int n;
25 uint8_t in[] = "hello";
26 - strbuf_add(&buf, in, sizeof(in));
26 + reftable_buf_add(&buf, in, sizeof(in));
27 block_source_from_strbuf(&source, &buf);
28 check_int(block_source_size(&source), ==, 6);
29 n = block_source_read_block(&source, &out, 0, sizeof(in));
@@ -37,10 +37,10 @@ static void t_buffer(void)
37
38 reftable_block_done(&out);
39 block_source_close(&source);
40 - strbuf_release(&buf);
40 + reftable_buf_release(&buf);
41 }
42
43 -static void write_table(char ***names, struct strbuf *buf, int N,
43 +static void write_table(char ***names, struct reftable_buf *buf, int N,
44 int block_size, uint32_t hash_id)
45 {
46 struct reftable_write_options opts = {
@@ -82,7 +82,7 @@ static void write_table(char ***names, struct strbuf *buf, int N,
82
83 static void t_log_buffer_size(void)
84 {
85 - struct strbuf buf = STRBUF_INIT;
85 + struct reftable_buf buf = REFTABLE_BUF_INIT;
86 struct reftable_write_options opts = {
87 .block_size = 4096,
88 };
@@ -114,12 +114,12 @@ static void t_log_buffer_size(void)
114 err = reftable_writer_close(w);
115 check(!err);
116 reftable_writer_free(w);
117 - strbuf_release(&buf);
117 + reftable_buf_release(&buf);
118 }
119
120 static void t_log_overflow(void)
121 {
122 - struct strbuf buf = STRBUF_INIT;
122 + struct reftable_buf buf = REFTABLE_BUF_INIT;
123 char msg[256] = { 0 };
124 struct reftable_write_options opts = {
125 .block_size = ARRAY_SIZE(msg),
@@ -148,7 +148,7 @@ static void t_log_overflow(void)
148 err = reftable_writer_add_log(w, &log);
149 check_int(err, ==, REFTABLE_ENTRY_TOO_BIG_ERROR);
150 reftable_writer_free(w);
151 - strbuf_release(&buf);
151 + reftable_buf_release(&buf);
152 }
153
154 static void t_log_write_read(void)
@@ -161,7 +161,7 @@ static void t_log_write_read(void)
161 struct reftable_iterator it = { 0 };
162 struct reftable_reader *reader;
163 struct reftable_block_source source = { 0 };
164 - struct strbuf buf = STRBUF_INIT;
164 + struct reftable_buf buf = REFTABLE_BUF_INIT;
165 struct reftable_writer *w = t_reftable_strbuf_writer(&buf, &opts);
166 const struct reftable_stats *stats = NULL;
167 int N = 2, err, i, n;
@@ -247,7 +247,7 @@ static void t_log_write_read(void)
247 reftable_iterator_destroy(&it);
248
249 /* cleanup. */
250 - strbuf_release(&buf);
250 + reftable_buf_release(&buf);
251 free_names(names);
252 reftable_reader_decref(reader);
253 }
@@ -260,7 +260,7 @@ static void t_log_zlib_corruption(void)
260 struct reftable_iterator it = { 0 };
261 struct reftable_reader *reader;
262 struct reftable_block_source source = { 0 };
263 - struct strbuf buf = STRBUF_INIT;
263 + struct reftable_buf buf = REFTABLE_BUF_INIT;
264 struct reftable_writer *w = t_reftable_strbuf_writer(&buf, &opts);
265 const struct reftable_stats *stats = NULL;
266 char message[100] = { 0 };
@@ -312,13 +312,13 @@ static void t_log_zlib_corruption(void)
312
313 /* cleanup. */
314 reftable_reader_decref(reader);
315 - strbuf_release(&buf);
315 + reftable_buf_release(&buf);
316 }
317
318 static void t_table_read_write_sequential(void)
319 {
320 char **names;
321 - struct strbuf buf = STRBUF_INIT;
321 + struct reftable_buf buf = REFTABLE_BUF_INIT;
322 int N = 50;
323 struct reftable_iterator it = { 0 };
324 struct reftable_block_source source = { 0 };
@@ -352,25 +352,25 @@ static void t_table_read_write_sequential(void)
352
353 reftable_iterator_destroy(&it);
354 reftable_reader_decref(reader);
355 - strbuf_release(&buf);
355 + reftable_buf_release(&buf);
356 free_names(names);
357 }
358
359 static void t_table_write_small_table(void)
360 {
361 char **names;
362 - struct strbuf buf = STRBUF_INIT;
362 + struct reftable_buf buf = REFTABLE_BUF_INIT;
363 int N = 1;
364 write_table(&names, &buf, N, 4096, GIT_SHA1_FORMAT_ID);
365 check_int(buf.len, <, 200);
366 - strbuf_release(&buf);
366 + reftable_buf_release(&buf);
367 free_names(names);
368 }
369
370 static void t_table_read_api(void)
371 {
372 char **names;
373 - struct strbuf buf = STRBUF_INIT;
373 + struct reftable_buf buf = REFTABLE_BUF_INIT;
374 int N = 50;
375 struct reftable_reader *reader;
376 struct reftable_block_source source = { 0 };
@@ -393,17 +393,17 @@ static void t_table_read_api(void)
393 err = reftable_iterator_next_log(&it, &log);
394 check_int(err, ==, REFTABLE_API_ERROR);
395
396 - strbuf_release(&buf);
396 + reftable_buf_release(&buf);
397 free_names(names);
398 reftable_iterator_destroy(&it);
399 reftable_reader_decref(reader);
400 - strbuf_release(&buf);
400 + reftable_buf_release(&buf);
401 }
402
403 static void t_table_read_write_seek(int index, int hash_id)
404 {
405 char **names;
406 - struct strbuf buf = STRBUF_INIT;
406 + struct reftable_buf buf = REFTABLE_BUF_INIT;
407 int N = 50;
408 struct reftable_reader *reader;
409 struct reftable_block_source source = { 0 };
@@ -411,7 +411,7 @@ static void t_table_read_write_seek(int index, int hash_id)
411 int i = 0;
412
413 struct reftable_iterator it = { 0 };
414 - struct strbuf pastLast = STRBUF_INIT;
414 + struct reftable_buf pastLast = REFTABLE_BUF_INIT;
415 struct reftable_ref_record ref = { 0 };
416
417 write_table(&names, &buf, N, 256, hash_id);
@@ -443,8 +443,8 @@ static void t_table_read_write_seek(int index, int hash_id)
443 reftable_iterator_destroy(&it);
444 }
445
446 - strbuf_addstr(&pastLast, names[N - 1]);
447 - strbuf_addstr(&pastLast, "/");
446 + reftable_buf_addstr(&pastLast, names[N - 1]);
447 + reftable_buf_addstr(&pastLast, "/");
448
449 err = reftable_reader_init_ref_iterator(reader, &it);
450 check(!err);
@@ -457,10 +457,10 @@ static void t_table_read_write_seek(int index, int hash_id)
457 check_int(err, >, 0);
458 }
459
460 - strbuf_release(&pastLast);
460 + reftable_buf_release(&pastLast);
461 reftable_iterator_destroy(&it);
462
463 - strbuf_release(&buf);
463 + reftable_buf_release(&buf);
464 free_names(names);
465 reftable_reader_decref(reader);
466 }
@@ -492,7 +492,7 @@ static void t_table_refs_for(int indexed)
492 struct reftable_ref_record ref = { 0 };
493 struct reftable_reader *reader;
494 struct reftable_block_source source = { 0 };
495 - struct strbuf buf = STRBUF_INIT;
495 + struct reftable_buf buf = REFTABLE_BUF_INIT;
496 struct reftable_writer *w = t_reftable_strbuf_writer(&buf, &opts);
497 struct reftable_iterator it = { 0 };
498 int N = 50, n, j, err, i;
@@ -565,7 +565,7 @@ static void t_table_refs_for(int indexed)
565 }
566 check_int(j, ==, want_names_len);
567
568 - strbuf_release(&buf);
568 + reftable_buf_release(&buf);
569 free_names(want_names);
570 reftable_iterator_destroy(&it);
571 reftable_reader_decref(reader);
@@ -584,7 +584,7 @@ static void t_table_refs_for_obj_index(void)
584 static void t_write_empty_table(void)
585 {
586 struct reftable_write_options opts = { 0 };
587 - struct strbuf buf = STRBUF_INIT;
587 + struct reftable_buf buf = REFTABLE_BUF_INIT;
588 struct reftable_writer *w = t_reftable_strbuf_writer(&buf, &opts);
589 struct reftable_block_source source = { 0 };
590 struct reftable_reader *rd = NULL;
@@ -615,7 +615,7 @@ static void t_write_empty_table(void)
615
616 reftable_iterator_destroy(&it);
617 reftable_reader_decref(rd);
618 - strbuf_release(&buf);
618 + reftable_buf_release(&buf);
619 }
620
621 static void t_write_object_id_min_length(void)
@@ -623,7 +623,7 @@ static void t_write_object_id_min_length(void)
623 struct reftable_write_options opts = {
624 .block_size = 75,
625 };
626 - struct strbuf buf = STRBUF_INIT;
626 + struct reftable_buf buf = REFTABLE_BUF_INIT;
627 struct reftable_writer *w = t_reftable_strbuf_writer(&buf, &opts);
628 struct reftable_ref_record ref = {
629 .update_index = 1,
@@ -649,7 +649,7 @@ static void t_write_object_id_min_length(void)
649 check(!err);
650 check_int(reftable_writer_stats(w)->object_id_len, ==, 2);
651 reftable_writer_free(w);
652 - strbuf_release(&buf);
652 + reftable_buf_release(&buf);
653 }
654
655 static void t_write_object_id_length(void)
@@ -657,7 +657,7 @@ static void t_write_object_id_length(void)
657 struct reftable_write_options opts = {
658 .block_size = 75,
659 };
660 - struct strbuf buf = STRBUF_INIT;
660 + struct reftable_buf buf = REFTABLE_BUF_INIT;
661 struct reftable_writer *w = t_reftable_strbuf_writer(&buf, &opts);
662 struct reftable_ref_record ref = {
663 .update_index = 1,
@@ -684,13 +684,13 @@ static void t_write_object_id_length(void)
684 check(!err);
685 check_int(reftable_writer_stats(w)->object_id_len, ==, 16);
686 reftable_writer_free(w);
687 - strbuf_release(&buf);
687 + reftable_buf_release(&buf);
688 }
689
690 static void t_write_empty_key(void)
691 {
692 struct reftable_write_options opts = { 0 };
693 - struct strbuf buf = STRBUF_INIT;
693 + struct reftable_buf buf = REFTABLE_BUF_INIT;
694 struct reftable_writer *w = t_reftable_strbuf_writer(&buf, &opts);
695 struct reftable_ref_record ref = {
696 .refname = (char *) "",
@@ -706,13 +706,13 @@ static void t_write_empty_key(void)
706 err = reftable_writer_close(w);
707 check_int(err, ==, REFTABLE_EMPTY_TABLE_ERROR);
708 reftable_writer_free(w);
709 - strbuf_release(&buf);
709 + reftable_buf_release(&buf);
710 }
711
712 static void t_write_key_order(void)
713 {
714 struct reftable_write_options opts = { 0 };
715 - struct strbuf buf = STRBUF_INIT;
715 + struct reftable_buf buf = REFTABLE_BUF_INIT;
716 struct reftable_writer *w = t_reftable_strbuf_writer(&buf, &opts);
717 struct reftable_ref_record refs[2] = {
718 {
@@ -745,7 +745,7 @@ static void t_write_key_order(void)
745
746 reftable_writer_close(w);
747 reftable_writer_free(w);
748 - strbuf_release(&buf);
748 + reftable_buf_release(&buf);
749 }
750
751 static void t_write_multiple_indices(void)
@@ -753,7 +753,7 @@ static void t_write_multiple_indices(void)
753 struct reftable_write_options opts = {
754 .block_size = 100,
755 };
756 - struct strbuf writer_buf = STRBUF_INIT;
756 + struct reftable_buf writer_buf = REFTABLE_BUF_INIT;
757 struct reftable_block_source source = { 0 };
758 struct reftable_iterator it = { 0 };
759 const struct reftable_stats *stats;
@@ -822,7 +822,7 @@ static void t_write_multiple_indices(void)
822 reftable_iterator_destroy(&it);
823 reftable_writer_free(writer);
824 reftable_reader_decref(reader);
825 - strbuf_release(&writer_buf);
825 + reftable_buf_release(&writer_buf);
826 }
827
828 static void t_write_multi_level_index(void)
@@ -830,7 +830,7 @@ static void t_write_multi_level_index(void)
830 struct reftable_write_options opts = {
831 .block_size = 100,
832 };
833 - struct strbuf writer_buf = STRBUF_INIT, buf = STRBUF_INIT;
833 + struct reftable_buf writer_buf = REFTABLE_BUF_INIT, buf = REFTABLE_BUF_INIT;
834 struct reftable_block_source source = { 0 };
835 struct reftable_iterator it = { 0 };
836 const struct reftable_stats *stats;
@@ -878,13 +878,13 @@ static void t_write_multi_level_index(void)
878 reftable_iterator_destroy(&it);
879 reftable_writer_free(writer);
880 reftable_reader_decref(reader);
881 - strbuf_release(&writer_buf);
882 - strbuf_release(&buf);
881 + reftable_buf_release(&writer_buf);
882 + reftable_buf_release(&buf);
883 }
884
885 static void t_corrupt_table_empty(void)
886 {
887 - struct strbuf buf = STRBUF_INIT;
887 + struct reftable_buf buf = REFTABLE_BUF_INIT;
888 struct reftable_block_source source = { 0 };
889 struct reftable_reader *reader;
890 int err;
@@ -897,17 +897,17 @@ static void t_corrupt_table_empty(void)
897 static void t_corrupt_table(void)
898 {
899 uint8_t zeros[1024] = { 0 };
900 - struct strbuf buf = STRBUF_INIT;
900 + struct reftable_buf buf = REFTABLE_BUF_INIT;
901 struct reftable_block_source source = { 0 };
902 struct reftable_reader *reader;
903 int err;
904 - strbuf_add(&buf, zeros, sizeof(zeros));
904 + reftable_buf_add(&buf, zeros, sizeof(zeros));
905
906 block_source_from_strbuf(&source, &buf);
907 err = reftable_reader_new(&reader, &source, "file.log");
908 check_int(err, ==, REFTABLE_FORMAT_ERROR);
909
910 - strbuf_release(&buf);
910 + reftable_buf_release(&buf);
911 }
912
913 int cmd_main(int argc UNUSED, const char *argv[] UNUSED)
t/unit-tests/t-reftable-record.c
+37 -37
@@ -116,7 +116,7 @@ static void t_reftable_ref_record_compare_name(void)
116
117 static void t_reftable_ref_record_roundtrip(void)
118 {
119 - struct strbuf scratch = STRBUF_INIT;
119 + struct reftable_buf scratch = REFTABLE_BUF_INIT;
120
121 for (int i = REFTABLE_REF_DELETION; i < REFTABLE_NR_REF_VALUETYPES; i++) {
122 struct reftable_record in = {
@@ -124,7 +124,7 @@ static void t_reftable_ref_record_roundtrip(void)
124 .u.ref.value_type = i,
125 };
126 struct reftable_record out = { .type = BLOCK_TYPE_REF };
127 - struct strbuf key = STRBUF_INIT;
127 + struct reftable_buf key = REFTABLE_BUF_INIT;
128 uint8_t buffer[1024] = { 0 };
129 struct string_view dest = {
130 .buf = buffer,
@@ -166,11 +166,11 @@ static void t_reftable_ref_record_roundtrip(void)
166 GIT_SHA1_RAWSZ));
167 reftable_record_release(&in);
168
169 - strbuf_release(&key);
169 + reftable_buf_release(&key);
170 reftable_record_release(&out);
171 }
172
173 - strbuf_release(&scratch);
173 + reftable_buf_release(&scratch);
174 }
175
176 static void t_reftable_log_record_comparison(void)
@@ -262,7 +262,7 @@ static void t_reftable_log_record_roundtrip(void)
262 .value_type = REFTABLE_LOG_UPDATE,
263 }
264 };
265 - struct strbuf scratch = STRBUF_INIT;
265 + struct reftable_buf scratch = REFTABLE_BUF_INIT;
266 set_hash(in[0].value.update.new_hash, 1);
267 set_hash(in[0].value.update.old_hash, 2);
268 set_hash(in[2].value.update.new_hash, 3);
@@ -274,7 +274,7 @@ static void t_reftable_log_record_roundtrip(void)
274
275 for (size_t i = 0; i < ARRAY_SIZE(in); i++) {
276 struct reftable_record rec = { .type = BLOCK_TYPE_LOG };
277 - struct strbuf key = STRBUF_INIT;
277 + struct reftable_buf key = REFTABLE_BUF_INIT;
278 uint8_t buffer[1024] = { 0 };
279 struct string_view dest = {
280 .buf = buffer,
@@ -313,11 +313,11 @@ static void t_reftable_log_record_roundtrip(void)
313 check(reftable_log_record_equal(&in[i], &out.u.log,
314 GIT_SHA1_RAWSZ));
315 reftable_log_record_release(&in[i]);
316 - strbuf_release(&key);
316 + reftable_buf_release(&key);
317 reftable_record_release(&out);
318 }
319
320 - strbuf_release(&scratch);
320 + reftable_buf_release(&scratch);
321 }
322
323 static void t_key_roundtrip(void)
@@ -327,30 +327,30 @@ static void t_key_roundtrip(void)
327 .buf = buffer,
328 .len = sizeof(buffer),
329 };
330 - struct strbuf last_key = STRBUF_INIT;
331 - struct strbuf key = STRBUF_INIT;
332 - struct strbuf roundtrip = STRBUF_INIT;
330 + struct reftable_buf last_key = REFTABLE_BUF_INIT;
331 + struct reftable_buf key = REFTABLE_BUF_INIT;
332 + struct reftable_buf roundtrip = REFTABLE_BUF_INIT;
333 int restart;
334 uint8_t extra;
335 int n, m;
336 uint8_t rt_extra;
337
338 - strbuf_addstr(&last_key, "refs/heads/master");
339 - strbuf_addstr(&key, "refs/tags/bla");
338 + reftable_buf_addstr(&last_key, "refs/heads/master");
339 + reftable_buf_addstr(&key, "refs/tags/bla");
340 extra = 6;
341 n = reftable_encode_key(&restart, dest, last_key, key, extra);
342 check(!restart);
343 check_int(n, >, 0);
344
345 - strbuf_addstr(&roundtrip, "refs/heads/master");
345 + reftable_buf_addstr(&roundtrip, "refs/heads/master");
346 m = reftable_decode_key(&roundtrip, &rt_extra, dest);
347 check_int(n, ==, m);
348 - check(!strbuf_cmp(&key, &roundtrip));
348 + check(!reftable_buf_cmp(&key, &roundtrip));
349 check_int(rt_extra, ==, extra);
350
351 - strbuf_release(&last_key);
352 - strbuf_release(&key);
353 - strbuf_release(&roundtrip);
351 + reftable_buf_release(&last_key);
352 + reftable_buf_release(&key);
353 + reftable_buf_release(&roundtrip);
354 }
355
356 static void t_reftable_obj_record_comparison(void)
@@ -413,7 +413,7 @@ static void t_reftable_obj_record_roundtrip(void)
413 .hash_prefix_len = 5,
414 },
415 };
416 - struct strbuf scratch = STRBUF_INIT;
416 + struct reftable_buf scratch = REFTABLE_BUF_INIT;
417
418 for (size_t i = 0; i < ARRAY_SIZE(recs); i++) {
419 uint8_t buffer[1024] = { 0 };
@@ -427,7 +427,7 @@ static void t_reftable_obj_record_roundtrip(void)
427 .obj = recs[i],
428 },
429 };
430 - struct strbuf key = STRBUF_INIT;
430 + struct reftable_buf key = REFTABLE_BUF_INIT;
431 struct reftable_record out = { .type = BLOCK_TYPE_OBJ };
432 int n, m;
433 uint8_t extra;
@@ -443,11 +443,11 @@ static void t_reftable_obj_record_roundtrip(void)
443 check_int(n, ==, m);
444
445 check(reftable_record_equal(&in, &out, GIT_SHA1_RAWSZ));
446 - strbuf_release(&key);
446 + reftable_buf_release(&key);
447 reftable_record_release(&out);
448 }
449
450 - strbuf_release(&scratch);
450 + reftable_buf_release(&scratch);
451 }
452
453 static void t_reftable_index_record_comparison(void)
@@ -456,22 +456,22 @@ static void t_reftable_index_record_comparison(void)
456 {
457 .type = BLOCK_TYPE_INDEX,
458 .u.idx.offset = 22,
459 - .u.idx.last_key = STRBUF_INIT,
459 + .u.idx.last_key = REFTABLE_BUF_INIT,
460 },
461 {
462 .type = BLOCK_TYPE_INDEX,
463 .u.idx.offset = 32,
464 - .u.idx.last_key = STRBUF_INIT,
464 + .u.idx.last_key = REFTABLE_BUF_INIT,
465 },
466 {
467 .type = BLOCK_TYPE_INDEX,
468 .u.idx.offset = 32,
469 - .u.idx.last_key = STRBUF_INIT,
469 + .u.idx.last_key = REFTABLE_BUF_INIT,
470 },
471 };
472 - strbuf_addstr(&in[0].u.idx.last_key, "refs/heads/master");
473 - strbuf_addstr(&in[1].u.idx.last_key, "refs/heads/master");
474 - strbuf_addstr(&in[2].u.idx.last_key, "refs/heads/branch");
472 + reftable_buf_addstr(&in[0].u.idx.last_key, "refs/heads/master");
473 + reftable_buf_addstr(&in[1].u.idx.last_key, "refs/heads/master");
474 + reftable_buf_addstr(&in[2].u.idx.last_key, "refs/heads/branch");
475
476 check(!reftable_record_equal(&in[0], &in[1], GIT_SHA1_RAWSZ));
477 check(!reftable_record_cmp(&in[0], &in[1]));
@@ -493,7 +493,7 @@ static void t_reftable_index_record_roundtrip(void)
493 .type = BLOCK_TYPE_INDEX,
494 .u.idx = {
495 .offset = 42,
496 - .last_key = STRBUF_INIT,
496 + .last_key = REFTABLE_BUF_INIT,
497 },
498 };
499 uint8_t buffer[1024] = { 0 };
@@ -501,21 +501,21 @@ static void t_reftable_index_record_roundtrip(void)
501 .buf = buffer,
502 .len = sizeof(buffer),
503 };
504 - struct strbuf scratch = STRBUF_INIT;
505 - struct strbuf key = STRBUF_INIT;
504 + struct reftable_buf scratch = REFTABLE_BUF_INIT;
505 + struct reftable_buf key = REFTABLE_BUF_INIT;
506 struct reftable_record out = {
507 .type = BLOCK_TYPE_INDEX,
508 - .u.idx = { .last_key = STRBUF_INIT },
508 + .u.idx = { .last_key = REFTABLE_BUF_INIT },
509 };
510 int n, m;
511 uint8_t extra;
512
513 - strbuf_addstr(&in.u.idx.last_key, "refs/heads/master");
513 + reftable_buf_addstr(&in.u.idx.last_key, "refs/heads/master");
514 reftable_record_key(&in, &key);
515 t_copy(&in);
516
517 check(!reftable_record_is_deletion(&in));
518 - check(!strbuf_cmp(&key, &in.u.idx.last_key));
518 + check(!reftable_buf_cmp(&key, &in.u.idx.last_key));
519 n = reftable_record_encode(&in, dest, GIT_SHA1_RAWSZ);
520 check_int(n, >, 0);
521
@@ -527,9 +527,9 @@ static void t_reftable_index_record_roundtrip(void)
527 check(reftable_record_equal(&in, &out, GIT_SHA1_RAWSZ));
528
529 reftable_record_release(&out);
530 - strbuf_release(&key);
531 - strbuf_release(&scratch);
532 - strbuf_release(&in.u.idx.last_key);
530 + reftable_buf_release(&key);
531 + reftable_buf_release(&scratch);
532 + reftable_buf_release(&in.u.idx.last_key);
533 }
534
535 int cmd_main(int argc UNUSED, const char *argv[] UNUSED)
t/unit-tests/t-reftable-stack.c
+45 -45
@@ -16,7 +16,7 @@ https://developers.google.com/open-source/licenses/bsd
16
17 static void clear_dir(const char *dirname)
18 {
19 - struct strbuf path = STRBUF_INIT;
19 + struct strbuf path = REFTABLE_BUF_INIT;
20 strbuf_addstr(&path, dirname);
21 remove_dir_recursively(&path, 0);
22 strbuf_release(&path);
@@ -145,7 +145,7 @@ static int write_test_log(struct reftable_writer *wr, void *arg)
145 static void t_reftable_stack_add_one(void)
146 {
147 char *dir = get_tmp_dir(__LINE__);
148 - struct strbuf scratch = STRBUF_INIT;
148 + struct reftable_buf scratch = REFTABLE_BUF_INIT;
149 int mask = umask(002);
150 struct reftable_write_options opts = {
151 .default_permissions = 0660,
@@ -172,17 +172,17 @@ static void t_reftable_stack_add_one(void)
172 check_int(st->readers_len, >, 0);
173
174 #ifndef GIT_WINDOWS_NATIVE
175 - strbuf_addstr(&scratch, dir);
176 - strbuf_addstr(&scratch, "/tables.list");
175 + reftable_buf_addstr(&scratch, dir);
176 + reftable_buf_addstr(&scratch, "/tables.list");
177 err = stat(scratch.buf, &stat_result);
178 check(!err);
179 check_int((stat_result.st_mode & 0777), ==, opts.default_permissions);
180
181 - strbuf_reset(&scratch);
182 - strbuf_addstr(&scratch, dir);
183 - strbuf_addstr(&scratch, "/");
181 + reftable_buf_reset(&scratch);
182 + reftable_buf_addstr(&scratch, dir);
183 + reftable_buf_addstr(&scratch, "/");
184 /* do not try at home; not an external API for reftable. */
185 - strbuf_addstr(&scratch, st->readers[0]->name);
185 + reftable_buf_addstr(&scratch, st->readers[0]->name);
186 err = stat(scratch.buf, &stat_result);
187 check(!err);
188 check_int((stat_result.st_mode & 0777), ==, opts.default_permissions);
@@ -192,7 +192,7 @@ static void t_reftable_stack_add_one(void)
192
193 reftable_ref_record_release(&dest);
194 reftable_stack_destroy(st);
195 - strbuf_release(&scratch);
195 + reftable_buf_release(&scratch);
196 clear_dir(dir);
197 umask(mask);
198 }
@@ -414,7 +414,7 @@ static void t_reftable_stack_auto_compaction_fails_gracefully(void)
414 };
415 struct reftable_write_options opts = { 0 };
416 struct reftable_stack *st;
417 - struct strbuf table_path = STRBUF_INIT;
417 + struct reftable_buf table_path = REFTABLE_BUF_INIT;
418 char *dir = get_tmp_dir(__LINE__);
419 int err;
420
@@ -432,10 +432,10 @@ static void t_reftable_stack_auto_compaction_fails_gracefully(void)
432 * Adding a new table to the stack should not be impacted by this, even
433 * though auto-compaction will now fail.
434 */
435 - strbuf_addstr(&table_path, dir);
436 - strbuf_addstr(&table_path, "/");
437 - strbuf_addstr(&table_path, st->readers[0]->name);
438 - strbuf_addstr(&table_path, ".lock");
435 + reftable_buf_addstr(&table_path, dir);
436 + reftable_buf_addstr(&table_path, "/");
437 + reftable_buf_addstr(&table_path, st->readers[0]->name);
438 + reftable_buf_addstr(&table_path, ".lock");
439 write_file_buf(table_path.buf, "", 0);
440
441 ref.update_index = 2;
@@ -446,7 +446,7 @@ static void t_reftable_stack_auto_compaction_fails_gracefully(void)
446 check_int(st->stats.failures, ==, 1);
447
448 reftable_stack_destroy(st);
449 - strbuf_release(&table_path);
449 + reftable_buf_release(&table_path);
450 clear_dir(dir);
451 }
452
@@ -516,7 +516,7 @@ static void t_reftable_stack_add(void)
516 char *dir = get_tmp_dir(__LINE__);
517 struct reftable_ref_record refs[2] = { 0 };
518 struct reftable_log_record logs[2] = { 0 };
519 - struct strbuf path = STRBUF_INIT;
519 + struct reftable_buf path = REFTABLE_BUF_INIT;
520 struct stat stat_result;
521 size_t i, N = ARRAY_SIZE(refs);
522
@@ -575,17 +575,17 @@ static void t_reftable_stack_add(void)
575 }
576
577 #ifndef GIT_WINDOWS_NATIVE
578 - strbuf_addstr(&path, dir);
579 - strbuf_addstr(&path, "/tables.list");
578 + reftable_buf_addstr(&path, dir);
579 + reftable_buf_addstr(&path, "/tables.list");
580 err = stat(path.buf, &stat_result);
581 check(!err);
582 check_int((stat_result.st_mode & 0777), ==, opts.default_permissions);
583
584 - strbuf_reset(&path);
585 - strbuf_addstr(&path, dir);
586 - strbuf_addstr(&path, "/");
584 + reftable_buf_reset(&path);
585 + reftable_buf_addstr(&path, dir);
586 + reftable_buf_addstr(&path, "/");
587 /* do not try at home; not an external API for reftable. */
588 - strbuf_addstr(&path, st->readers[0]->name);
588 + reftable_buf_addstr(&path, st->readers[0]->name);
589 err = stat(path.buf, &stat_result);
590 check(!err);
591 check_int((stat_result.st_mode & 0777), ==, opts.default_permissions);
@@ -599,7 +599,7 @@ static void t_reftable_stack_add(void)
599 reftable_ref_record_release(&refs[i]);
600 reftable_log_record_release(&logs[i]);
601 }
602 - strbuf_release(&path);
602 + reftable_buf_release(&path);
603 clear_dir(dir);
604 }
605
@@ -1063,7 +1063,7 @@ static void t_reftable_stack_auto_compaction_with_locked_tables(void)
1063 .disable_auto_compact = 1,
1064 };
1065 struct reftable_stack *st = NULL;
1066 - struct strbuf buf = STRBUF_INIT;
1066 + struct reftable_buf buf = REFTABLE_BUF_INIT;
1067 char *dir = get_tmp_dir(__LINE__);
1068 int err;
1069
@@ -1078,10 +1078,10 @@ static void t_reftable_stack_auto_compaction_with_locked_tables(void)
1078 * size, we expect that auto-compaction will want to compact all of the
1079 * tables. Locking any of the tables will keep it from doing so.
1080 */
1081 - strbuf_addstr(&buf, dir);
1082 - strbuf_addstr(&buf, "/");
1083 - strbuf_addstr(&buf, st->readers[2]->name);
1084 - strbuf_addstr(&buf, ".lock");
1081 + reftable_buf_addstr(&buf, dir);
1082 + reftable_buf_addstr(&buf, "/");
1083 + reftable_buf_addstr(&buf, st->readers[2]->name);
1084 + reftable_buf_addstr(&buf, ".lock");
1085 write_file_buf(buf.buf, "", 0);
1086
1087 /*
@@ -1096,7 +1096,7 @@ static void t_reftable_stack_auto_compaction_with_locked_tables(void)
1096 check_int(st->merged->readers_len, ==, 4);
1097
1098 reftable_stack_destroy(st);
1099 - strbuf_release(&buf);
1099 + reftable_buf_release(&buf);
1100 clear_dir(dir);
1101 }
1102
@@ -1153,7 +1153,7 @@ static void t_reftable_stack_compaction_with_locked_tables(void)
1153 .disable_auto_compact = 1,
1154 };
1155 struct reftable_stack *st = NULL;
1156 - struct strbuf buf = STRBUF_INIT;
1156 + struct reftable_buf buf = REFTABLE_BUF_INIT;
1157 char *dir = get_tmp_dir(__LINE__);
1158 int err;
1159
@@ -1164,10 +1164,10 @@ static void t_reftable_stack_compaction_with_locked_tables(void)
1164 check_int(st->merged->readers_len, ==, 3);
1165
1166 /* Lock one of the tables that we're about to compact. */
1167 - strbuf_addstr(&buf, dir);
1168 - strbuf_addstr(&buf, "/");
1169 - strbuf_addstr(&buf, st->readers[1]->name);
1170 - strbuf_addstr(&buf, ".lock");
1167 + reftable_buf_addstr(&buf, dir);
1168 + reftable_buf_addstr(&buf, "/");
1169 + reftable_buf_addstr(&buf, st->readers[1]->name);
1170 + reftable_buf_addstr(&buf, ".lock");
1171 write_file_buf(buf.buf, "", 0);
1172
1173 /*
@@ -1180,7 +1180,7 @@ static void t_reftable_stack_compaction_with_locked_tables(void)
1180 check_int(st->merged->readers_len, ==, 3);
1181
1182 reftable_stack_destroy(st);
1183 - strbuf_release(&buf);
1183 + reftable_buf_release(&buf);
1184 clear_dir(dir);
1185 }
1186
@@ -1306,7 +1306,7 @@ static void t_reftable_stack_reload_with_missing_table(void)
1306 struct reftable_stack *st = NULL;
1307 struct reftable_ref_record rec = { 0 };
1308 struct reftable_iterator it = { 0 };
1309 - struct strbuf table_path = STRBUF_INIT, content = STRBUF_INIT;
1309 + struct reftable_buf table_path = REFTABLE_BUF_INIT, content = REFTABLE_BUF_INIT;
1310 char *dir = get_tmp_dir(__LINE__);
1311 int err;
1312
@@ -1324,13 +1324,13 @@ static void t_reftable_stack_reload_with_missing_table(void)
1324 * our old readers. This should trigger a partial reload of the stack,
1325 * where we try to reuse our old readers.
1326 */
1327 - strbuf_addstr(&content, st->readers[0]->name);
1328 - strbuf_addstr(&content, "\n");
1329 - strbuf_addstr(&content, st->readers[1]->name);
1330 - strbuf_addstr(&content, "\n");
1331 - strbuf_addstr(&content, "garbage\n");
1332 - strbuf_addstr(&table_path, st->list_file);
1333 - strbuf_addstr(&table_path, ".lock");
1327 + reftable_buf_addstr(&content, st->readers[0]->name);
1328 + reftable_buf_addstr(&content, "\n");
1329 + reftable_buf_addstr(&content, st->readers[1]->name);
1330 + reftable_buf_addstr(&content, "\n");
1331 + reftable_buf_addstr(&content, "garbage\n");
1332 + reftable_buf_addstr(&table_path, st->list_file);
1333 + reftable_buf_addstr(&table_path, ".lock");
1334 write_file_buf(table_path.buf, content.buf, content.len);
1335 err = rename(table_path.buf, st->list_file);
1336 check(!err);
@@ -1355,8 +1355,8 @@ static void t_reftable_stack_reload_with_missing_table(void)
1355 reftable_ref_record_release(&rec);
1356 reftable_iterator_destroy(&it);
1357 reftable_stack_destroy(st);
1358 - strbuf_release(&table_path);
1359 - strbuf_release(&content);
1358 + reftable_buf_release(&table_path);
1359 + reftable_buf_release(&content);
1360 clear_dir(dir);
1361 }
1362