reftable: rename scratch buffer
Both `struct block_writer` and `struct reftable_writer` have a `buf` member that is being reused to optimize the number of allocations. Rename the variable to `scratch` to clarify its intend and provide a comment explaining why it exists. Suggested-by: Christian Couder <christian.couder@gmail.com> Signed-off-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
0f5762b043
commit
ef46ad0815
@ -115,16 +115,16 @@ int block_writer_add(struct block_writer *w, struct reftable_record *rec)
|
|||||||
int n = 0;
|
int n = 0;
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
err = reftable_record_key(rec, &w->buf);
|
err = reftable_record_key(rec, &w->scratch);
|
||||||
if (err < 0)
|
if (err < 0)
|
||||||
goto done;
|
goto done;
|
||||||
|
|
||||||
if (!w->buf.len) {
|
if (!w->scratch.len) {
|
||||||
err = REFTABLE_API_ERROR;
|
err = REFTABLE_API_ERROR;
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
n = reftable_encode_key(&is_restart, out, last, w->buf,
|
n = reftable_encode_key(&is_restart, out, last, w->scratch,
|
||||||
reftable_record_val_type(rec));
|
reftable_record_val_type(rec));
|
||||||
if (n < 0) {
|
if (n < 0) {
|
||||||
err = -1;
|
err = -1;
|
||||||
@ -140,7 +140,7 @@ int block_writer_add(struct block_writer *w, struct reftable_record *rec)
|
|||||||
string_view_consume(&out, n);
|
string_view_consume(&out, n);
|
||||||
|
|
||||||
err = block_writer_register_restart(w, start.len - out.len, is_restart,
|
err = block_writer_register_restart(w, start.len - out.len, is_restart,
|
||||||
&w->buf);
|
&w->scratch);
|
||||||
done:
|
done:
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
@ -565,7 +565,7 @@ void block_writer_release(struct block_writer *bw)
|
|||||||
REFTABLE_FREE_AND_NULL(bw->zstream);
|
REFTABLE_FREE_AND_NULL(bw->zstream);
|
||||||
REFTABLE_FREE_AND_NULL(bw->restarts);
|
REFTABLE_FREE_AND_NULL(bw->restarts);
|
||||||
REFTABLE_FREE_AND_NULL(bw->compressed);
|
REFTABLE_FREE_AND_NULL(bw->compressed);
|
||||||
reftable_buf_release(&bw->buf);
|
reftable_buf_release(&bw->scratch);
|
||||||
reftable_buf_release(&bw->last_key);
|
reftable_buf_release(&bw->last_key);
|
||||||
/* the block is not owned. */
|
/* the block is not owned. */
|
||||||
}
|
}
|
||||||
|
@ -39,7 +39,8 @@ struct block_writer {
|
|||||||
uint32_t restart_cap;
|
uint32_t restart_cap;
|
||||||
|
|
||||||
struct reftable_buf last_key;
|
struct reftable_buf last_key;
|
||||||
struct reftable_buf buf;
|
/* Scratch buffer used to avoid allocations. */
|
||||||
|
struct reftable_buf scratch;
|
||||||
int entries;
|
int entries;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -148,7 +148,7 @@ int reftable_writer_new(struct reftable_writer **out,
|
|||||||
|
|
||||||
reftable_buf_init(&wp->block_writer_data.last_key);
|
reftable_buf_init(&wp->block_writer_data.last_key);
|
||||||
reftable_buf_init(&wp->last_key);
|
reftable_buf_init(&wp->last_key);
|
||||||
reftable_buf_init(&wp->buf);
|
reftable_buf_init(&wp->scratch);
|
||||||
REFTABLE_CALLOC_ARRAY(wp->block, opts.block_size);
|
REFTABLE_CALLOC_ARRAY(wp->block, opts.block_size);
|
||||||
if (!wp->block) {
|
if (!wp->block) {
|
||||||
reftable_free(wp);
|
reftable_free(wp);
|
||||||
@ -181,7 +181,7 @@ static void writer_release(struct reftable_writer *w)
|
|||||||
w->block_writer = NULL;
|
w->block_writer = NULL;
|
||||||
writer_clear_index(w);
|
writer_clear_index(w);
|
||||||
reftable_buf_release(&w->last_key);
|
reftable_buf_release(&w->last_key);
|
||||||
reftable_buf_release(&w->buf);
|
reftable_buf_release(&w->scratch);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -253,17 +253,17 @@ static int writer_add_record(struct reftable_writer *w,
|
|||||||
{
|
{
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
err = reftable_record_key(rec, &w->buf);
|
err = reftable_record_key(rec, &w->scratch);
|
||||||
if (err < 0)
|
if (err < 0)
|
||||||
goto done;
|
goto done;
|
||||||
|
|
||||||
if (reftable_buf_cmp(&w->last_key, &w->buf) >= 0) {
|
if (reftable_buf_cmp(&w->last_key, &w->scratch) >= 0) {
|
||||||
err = REFTABLE_API_ERROR;
|
err = REFTABLE_API_ERROR;
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
reftable_buf_reset(&w->last_key);
|
reftable_buf_reset(&w->last_key);
|
||||||
err = reftable_buf_add(&w->last_key, w->buf.buf, w->buf.len);
|
err = reftable_buf_add(&w->last_key, w->scratch.buf, w->scratch.len);
|
||||||
if (err < 0)
|
if (err < 0)
|
||||||
goto done;
|
goto done;
|
||||||
|
|
||||||
@ -339,25 +339,25 @@ int reftable_writer_add_ref(struct reftable_writer *w,
|
|||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
if (!w->opts.skip_index_objects && reftable_ref_record_val1(ref)) {
|
if (!w->opts.skip_index_objects && reftable_ref_record_val1(ref)) {
|
||||||
reftable_buf_reset(&w->buf);
|
reftable_buf_reset(&w->scratch);
|
||||||
err = reftable_buf_add(&w->buf, (char *)reftable_ref_record_val1(ref),
|
err = reftable_buf_add(&w->scratch, (char *)reftable_ref_record_val1(ref),
|
||||||
hash_size(w->opts.hash_id));
|
hash_size(w->opts.hash_id));
|
||||||
if (err < 0)
|
if (err < 0)
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
err = writer_index_hash(w, &w->buf);
|
err = writer_index_hash(w, &w->scratch);
|
||||||
if (err < 0)
|
if (err < 0)
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!w->opts.skip_index_objects && reftable_ref_record_val2(ref)) {
|
if (!w->opts.skip_index_objects && reftable_ref_record_val2(ref)) {
|
||||||
reftable_buf_reset(&w->buf);
|
reftable_buf_reset(&w->scratch);
|
||||||
err = reftable_buf_add(&w->buf, reftable_ref_record_val2(ref),
|
err = reftable_buf_add(&w->scratch, reftable_ref_record_val2(ref),
|
||||||
hash_size(w->opts.hash_id));
|
hash_size(w->opts.hash_id));
|
||||||
if (err < 0)
|
if (err < 0)
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
err = writer_index_hash(w, &w->buf);
|
err = writer_index_hash(w, &w->scratch);
|
||||||
if (err < 0)
|
if (err < 0)
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
@ -20,7 +20,8 @@ struct reftable_writer {
|
|||||||
void *write_arg;
|
void *write_arg;
|
||||||
int pending_padding;
|
int pending_padding;
|
||||||
struct reftable_buf last_key;
|
struct reftable_buf last_key;
|
||||||
struct reftable_buf buf;
|
/* Scratch buffer used to avoid allocations. */
|
||||||
|
struct reftable_buf scratch;
|
||||||
|
|
||||||
/* offset of next block to write. */
|
/* offset of next block to write. */
|
||||||
uint64_t next;
|
uint64_t next;
|
||||||
|
Reference in New Issue
Block a user