mirror of
https://git.proxmox.com/git/libgit2
synced 2025-05-05 15:33:51 +00:00
idxmap: remove GIT__USE_IDXMAP
This commit is contained in:
parent
cee9ca6609
commit
8f1ff26bd3
16
src/idxmap.c
16
src/idxmap.c
@ -7,8 +7,20 @@
|
||||
|
||||
#include "idxmap.h"
|
||||
|
||||
GIT__USE_IDXMAP
|
||||
GIT__USE_IDXMAP_ICASE
|
||||
/* This is __ac_X31_hash_string but with tolower and it takes the entry's stage into account */
|
||||
static kh_inline khint_t idxentry_hash(const git_index_entry *e)
|
||||
{
|
||||
const char *s = e->path;
|
||||
khint_t h = (khint_t)git__tolower(*s);
|
||||
if (h) for (++s ; *s; ++s) h = (h << 5) - h + (khint_t)git__tolower(*s);
|
||||
return h + GIT_IDXENTRY_STAGE(e);
|
||||
}
|
||||
|
||||
#define idxentry_equal(a, b) (GIT_IDXENTRY_STAGE(a) == GIT_IDXENTRY_STAGE(b) && strcmp(a->path, b->path) == 0)
|
||||
#define idxentry_icase_equal(a, b) (GIT_IDXENTRY_STAGE(a) == GIT_IDXENTRY_STAGE(b) && strcasecmp(a->path, b->path) == 0)
|
||||
|
||||
__KHASH_IMPL(idx, static kh_inline, const git_index_entry *, git_index_entry *, 1, idxentry_hash, idxentry_equal)
|
||||
__KHASH_IMPL(idxicase, static kh_inline, const git_index_entry *, git_index_entry *, 1, idxentry_hash, idxentry_icase_equal)
|
||||
|
||||
int git_idxmap_alloc(git_idxmap **map)
|
||||
{
|
||||
|
18
src/idxmap.h
18
src/idxmap.h
@ -26,24 +26,6 @@ typedef khash_t(idxicase) git_idxmap_icase;
|
||||
|
||||
typedef khiter_t git_idxmap_iter;
|
||||
|
||||
/* This is __ac_X31_hash_string but with tolower and it takes the entry's stage into account */
|
||||
static kh_inline khint_t idxentry_hash(const git_index_entry *e)
|
||||
{
|
||||
const char *s = e->path;
|
||||
khint_t h = (khint_t)git__tolower(*s);
|
||||
if (h) for (++s ; *s; ++s) h = (h << 5) - h + (khint_t)git__tolower(*s);
|
||||
return h + GIT_IDXENTRY_STAGE(e);
|
||||
}
|
||||
|
||||
#define idxentry_equal(a, b) (GIT_IDXENTRY_STAGE(a) == GIT_IDXENTRY_STAGE(b) && strcmp(a->path, b->path) == 0)
|
||||
#define idxentry_icase_equal(a, b) (GIT_IDXENTRY_STAGE(a) == GIT_IDXENTRY_STAGE(b) && strcasecmp(a->path, b->path) == 0)
|
||||
|
||||
#define GIT__USE_IDXMAP \
|
||||
__KHASH_IMPL(idx, static kh_inline, const git_index_entry *, git_index_entry *, 1, idxentry_hash, idxentry_equal)
|
||||
|
||||
#define GIT__USE_IDXMAP_ICASE \
|
||||
__KHASH_IMPL(idxicase, static kh_inline, const git_index_entry *, git_index_entry *, 1, idxentry_hash, idxentry_icase_equal)
|
||||
|
||||
int git_idxmap_alloc(git_idxmap **map);
|
||||
int git_idxmap_icase_alloc(git_idxmap_icase **map);
|
||||
void git_idxmap_insert(git_idxmap *map, const git_index_entry *key, void *value, int *rval);
|
||||
|
@ -27,9 +27,6 @@
|
||||
#include "git2/config.h"
|
||||
#include "git2/sys/index.h"
|
||||
|
||||
GIT__USE_IDXMAP
|
||||
GIT__USE_IDXMAP_ICASE
|
||||
|
||||
#define INSERT_IN_MAP_EX(idx, map, e, err) do { \
|
||||
if ((idx)->ignore_case) \
|
||||
git_idxmap_icase_insert((khash_t(idxicase) *) (map), (e), (e), (err)); \
|
||||
|
Loading…
Reference in New Issue
Block a user