Skip to content

Commit

Permalink
Merge branch 'cb/many-alternate-optim-fixup'
Browse files Browse the repository at this point in the history
Build fix.

* cb/many-alternate-optim-fixup:
  object-file: use unsigned arithmetic with bit mask
  object-store: avoid extra ';' from KHASH_INIT
  oidtree: avoid nested struct oidtree_node
  • Loading branch information
gitster committed Aug 11, 2021
2 parents 2d755df + 581a3bb commit 7cfaa86
Show file tree
Hide file tree
Showing 3 changed files with 5 additions and 10 deletions.
2 changes: 1 addition & 1 deletion object-file.c
Original file line number Diff line number Diff line change
Expand Up @@ -2474,7 +2474,7 @@ struct oidtree *odb_loose_cache(struct object_directory *odb,
struct strbuf buf = STRBUF_INIT;
size_t word_bits = bitsizeof(odb->loose_objects_subdir_seen[0]);
size_t word_index = subdir_nr / word_bits;
size_t mask = 1 << (subdir_nr % word_bits);
size_t mask = 1u << (subdir_nr % word_bits);
uint32_t *bitmap;

if (subdir_nr < 0 ||
Expand Down
2 changes: 1 addition & 1 deletion object-store.h
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ struct object_directory {
};

KHASH_INIT(odb_path_map, const char * /* key: odb_path */,
struct object_directory *, 1, fspathhash, fspatheq);
struct object_directory *, 1, fspathhash, fspatheq)

void prepare_alt_odb(struct repository *r);
char *compute_alternate_path(const char *path, struct strbuf *err);
Expand Down
11 changes: 3 additions & 8 deletions oidtree.c
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,6 @@
#include "alloc.h"
#include "hash.h"

struct oidtree_node {
/* n.k[] is used to store "struct object_id" */
struct cb_node n;
};

struct oidtree_iter_data {
oidtree_iter fn;
void *arg;
Expand All @@ -35,21 +30,21 @@ void oidtree_clear(struct oidtree *ot)

void oidtree_insert(struct oidtree *ot, const struct object_id *oid)
{
struct oidtree_node *on;
struct cb_node *on;

if (!oid->algo)
BUG("oidtree_insert requires oid->algo");

on = mem_pool_alloc(&ot->mem_pool, sizeof(*on) + sizeof(*oid));
oidcpy_with_padding((struct object_id *)on->n.k, oid);
oidcpy_with_padding((struct object_id *)on->k, oid);

/*
* n.b. Current callers won't get us duplicates, here. If a
* future caller causes duplicates, there'll be a a small leak
* that won't be freed until oidtree_clear. Currently it's not
* worth maintaining a free list
*/
cb_insert(&ot->tree, &on->n, sizeof(*oid));
cb_insert(&ot->tree, on, sizeof(*oid));
}


Expand Down

0 comments on commit 7cfaa86

Please sign in to comment.