mirror of
https://github.com/git/git.git
synced 2024-11-24 10:26:17 +08:00
9892dc83f6
When a9f1f1f9f8
("commit-slab.h: code split", 2018-05-19) split
commit-slab.h into commit-slab-decl.h and commit-slab-impl.h header
files, commit-slab-decl.h were left to use "COMMIT_SLAB_HDR_H",
while commit-slab-impl.h gained its own macro, "COMMIT_SLAB_IMPL_H".
As these two files use different include guards, there is nothing
broken, but let's update commit-slab-decl.h to match the convention
to name the include guard after the filename.
Signed-off-by: Abhishek Kumar <abhishekkumar8222@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
44 lines
1.3 KiB
C
44 lines
1.3 KiB
C
#ifndef COMMIT_SLAB_DECL_H
|
|
#define COMMIT_SLAB_DECL_H
|
|
|
|
/* allocate ~512kB at once, allowing for malloc overhead */
|
|
#ifndef COMMIT_SLAB_SIZE
|
|
#define COMMIT_SLAB_SIZE (512*1024-32)
|
|
#endif
|
|
|
|
#define declare_commit_slab(slabname, elemtype) \
|
|
\
|
|
struct slabname { \
|
|
unsigned slab_size; \
|
|
unsigned stride; \
|
|
unsigned slab_count; \
|
|
elemtype **slab; \
|
|
}
|
|
|
|
/*
|
|
* Statically initialize a commit slab named "var". Note that this
|
|
* evaluates "stride" multiple times! Example:
|
|
*
|
|
* struct indegree indegrees = COMMIT_SLAB_INIT(1, indegrees);
|
|
*
|
|
*/
|
|
#define COMMIT_SLAB_INIT(stride, var) { \
|
|
COMMIT_SLAB_SIZE / sizeof(**((var).slab)) / (stride), \
|
|
(stride), 0, NULL \
|
|
}
|
|
|
|
#define declare_commit_slab_prototypes(slabname, elemtype) \
|
|
\
|
|
void init_ ##slabname## _with_stride(struct slabname *s, unsigned stride); \
|
|
void init_ ##slabname(struct slabname *s); \
|
|
void clear_ ##slabname(struct slabname *s); \
|
|
elemtype *slabname## _at_peek(struct slabname *s, const struct commit *c, int add_if_missing); \
|
|
elemtype *slabname## _at(struct slabname *s, const struct commit *c); \
|
|
elemtype *slabname## _peek(struct slabname *s, const struct commit *c)
|
|
|
|
#define define_shared_commit_slab(slabname, elemtype) \
|
|
declare_commit_slab(slabname, elemtype); \
|
|
declare_commit_slab_prototypes(slabname, elemtype)
|
|
|
|
#endif /* COMMIT_SLAB_DECL_H */
|