object-file: make `buf` parameter of `index_mem()` a constant
The `buf` parameter of `index_mem()` is a non-constant string. This will break once we enable `-Wwrite-strings` because we also pass constants from at least one callsite. Adapt the parameter to be a constant. As we cannot free the buffer without casting now, this also requires us to move the lifetime of the nested buffer around. Signed-off-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Junio C Hamano <gitster@pobox.com>maint
parent
724b6d1e18
commit
9f03e4813a
|
|
@ -2484,12 +2484,13 @@ static int hash_format_check_report(struct fsck_options *opts UNUSED,
|
||||||
}
|
}
|
||||||
|
|
||||||
static int index_mem(struct index_state *istate,
|
static int index_mem(struct index_state *istate,
|
||||||
struct object_id *oid, void *buf, size_t size,
|
struct object_id *oid,
|
||||||
|
const void *buf, size_t size,
|
||||||
enum object_type type,
|
enum object_type type,
|
||||||
const char *path, unsigned flags)
|
const char *path, unsigned flags)
|
||||||
{
|
{
|
||||||
|
struct strbuf nbuf = STRBUF_INIT;
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
int re_allocated = 0;
|
|
||||||
int write_object = flags & HASH_WRITE_OBJECT;
|
int write_object = flags & HASH_WRITE_OBJECT;
|
||||||
|
|
||||||
if (!type)
|
if (!type)
|
||||||
|
|
@ -2499,11 +2500,10 @@ static int index_mem(struct index_state *istate,
|
||||||
* Convert blobs to git internal format
|
* Convert blobs to git internal format
|
||||||
*/
|
*/
|
||||||
if ((type == OBJ_BLOB) && path) {
|
if ((type == OBJ_BLOB) && path) {
|
||||||
struct strbuf nbuf = STRBUF_INIT;
|
|
||||||
if (convert_to_git(istate, path, buf, size, &nbuf,
|
if (convert_to_git(istate, path, buf, size, &nbuf,
|
||||||
get_conv_flags(flags))) {
|
get_conv_flags(flags))) {
|
||||||
buf = strbuf_detach(&nbuf, &size);
|
buf = nbuf.buf;
|
||||||
re_allocated = 1;
|
size = nbuf.len;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (flags & HASH_FORMAT_CHECK) {
|
if (flags & HASH_FORMAT_CHECK) {
|
||||||
|
|
@ -2520,8 +2520,8 @@ static int index_mem(struct index_state *istate,
|
||||||
ret = write_object_file(buf, size, type, oid);
|
ret = write_object_file(buf, size, type, oid);
|
||||||
else
|
else
|
||||||
hash_object_file(the_hash_algo, buf, size, type, oid);
|
hash_object_file(the_hash_algo, buf, size, type, oid);
|
||||||
if (re_allocated)
|
|
||||||
free(buf);
|
strbuf_release(&nbuf);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue