Allow const keys for lookup
Signed-off-by: Steve Dougherty <sdougherty@barracuda.com> This resolves #281.
This commit is contained in:
parent
bd418ce11e
commit
13b4015531
@ -512,7 +512,7 @@ arena_chunk_map_bits_t *arena_bitselm_get(arena_chunk_t *chunk,
|
|||||||
size_t pageind);
|
size_t pageind);
|
||||||
arena_chunk_map_misc_t *arena_miscelm_get(arena_chunk_t *chunk,
|
arena_chunk_map_misc_t *arena_miscelm_get(arena_chunk_t *chunk,
|
||||||
size_t pageind);
|
size_t pageind);
|
||||||
size_t arena_miscelm_to_pageind(arena_chunk_map_misc_t *miscelm);
|
size_t arena_miscelm_to_pageind(const arena_chunk_map_misc_t *miscelm);
|
||||||
void *arena_miscelm_to_rpages(arena_chunk_map_misc_t *miscelm);
|
void *arena_miscelm_to_rpages(arena_chunk_map_misc_t *miscelm);
|
||||||
arena_chunk_map_misc_t *arena_rd_to_miscelm(arena_runs_dirty_link_t *rd);
|
arena_chunk_map_misc_t *arena_rd_to_miscelm(arena_runs_dirty_link_t *rd);
|
||||||
arena_chunk_map_misc_t *arena_run_to_miscelm(arena_run_t *run);
|
arena_chunk_map_misc_t *arena_run_to_miscelm(arena_run_t *run);
|
||||||
@ -590,7 +590,7 @@ arena_miscelm_get(arena_chunk_t *chunk, size_t pageind)
|
|||||||
}
|
}
|
||||||
|
|
||||||
JEMALLOC_ALWAYS_INLINE size_t
|
JEMALLOC_ALWAYS_INLINE size_t
|
||||||
arena_miscelm_to_pageind(arena_chunk_map_misc_t *miscelm)
|
arena_miscelm_to_pageind(const arena_chunk_map_misc_t *miscelm)
|
||||||
{
|
{
|
||||||
arena_chunk_t *chunk = (arena_chunk_t *)CHUNK_ADDR2BASE(miscelm);
|
arena_chunk_t *chunk = (arena_chunk_t *)CHUNK_ADDR2BASE(miscelm);
|
||||||
size_t pageind = ((uintptr_t)miscelm - ((uintptr_t)chunk +
|
size_t pageind = ((uintptr_t)miscelm - ((uintptr_t)chunk +
|
||||||
|
@ -178,11 +178,11 @@ a_prefix##next(a_rbt_type *rbtree, a_type *node); \
|
|||||||
a_attr a_type * \
|
a_attr a_type * \
|
||||||
a_prefix##prev(a_rbt_type *rbtree, a_type *node); \
|
a_prefix##prev(a_rbt_type *rbtree, a_type *node); \
|
||||||
a_attr a_type * \
|
a_attr a_type * \
|
||||||
a_prefix##search(a_rbt_type *rbtree, a_type *key); \
|
a_prefix##search(a_rbt_type *rbtree, const a_type *key); \
|
||||||
a_attr a_type * \
|
a_attr a_type * \
|
||||||
a_prefix##nsearch(a_rbt_type *rbtree, a_type *key); \
|
a_prefix##nsearch(a_rbt_type *rbtree, const a_type *key); \
|
||||||
a_attr a_type * \
|
a_attr a_type * \
|
||||||
a_prefix##psearch(a_rbt_type *rbtree, a_type *key); \
|
a_prefix##psearch(a_rbt_type *rbtree, const a_type *key); \
|
||||||
a_attr void \
|
a_attr void \
|
||||||
a_prefix##insert(a_rbt_type *rbtree, a_type *node); \
|
a_prefix##insert(a_rbt_type *rbtree, a_type *node); \
|
||||||
a_attr void \
|
a_attr void \
|
||||||
@ -263,7 +263,7 @@ a_prefix##reverse_iter(a_rbt_type *rbtree, a_type *start, \
|
|||||||
* last/first.
|
* last/first.
|
||||||
*
|
*
|
||||||
* static ex_node_t *
|
* static ex_node_t *
|
||||||
* ex_search(ex_t *tree, ex_node_t *key);
|
* ex_search(ex_t *tree, const ex_node_t *key);
|
||||||
* Description: Search for node that matches key.
|
* Description: Search for node that matches key.
|
||||||
* Args:
|
* Args:
|
||||||
* tree: Pointer to an initialized red-black tree object.
|
* tree: Pointer to an initialized red-black tree object.
|
||||||
@ -271,9 +271,9 @@ a_prefix##reverse_iter(a_rbt_type *rbtree, a_type *start, \
|
|||||||
* Ret: Node in tree that matches key, or NULL if no match.
|
* Ret: Node in tree that matches key, or NULL if no match.
|
||||||
*
|
*
|
||||||
* static ex_node_t *
|
* static ex_node_t *
|
||||||
* ex_nsearch(ex_t *tree, ex_node_t *key);
|
* ex_nsearch(ex_t *tree, const ex_node_t *key);
|
||||||
* static ex_node_t *
|
* static ex_node_t *
|
||||||
* ex_psearch(ex_t *tree, ex_node_t *key);
|
* ex_psearch(ex_t *tree, const ex_node_t *key);
|
||||||
* Description: Search for node that matches key. If no match is found,
|
* Description: Search for node that matches key. If no match is found,
|
||||||
* return what would be key's successor/predecessor, were
|
* return what would be key's successor/predecessor, were
|
||||||
* key in tree.
|
* key in tree.
|
||||||
@ -406,7 +406,7 @@ a_prefix##prev(a_rbt_type *rbtree, a_type *node) { \
|
|||||||
return (ret); \
|
return (ret); \
|
||||||
} \
|
} \
|
||||||
a_attr a_type * \
|
a_attr a_type * \
|
||||||
a_prefix##search(a_rbt_type *rbtree, a_type *key) { \
|
a_prefix##search(a_rbt_type *rbtree, const a_type *key) { \
|
||||||
a_type *ret; \
|
a_type *ret; \
|
||||||
int cmp; \
|
int cmp; \
|
||||||
ret = rbtree->rbt_root; \
|
ret = rbtree->rbt_root; \
|
||||||
@ -424,7 +424,7 @@ a_prefix##search(a_rbt_type *rbtree, a_type *key) { \
|
|||||||
return (ret); \
|
return (ret); \
|
||||||
} \
|
} \
|
||||||
a_attr a_type * \
|
a_attr a_type * \
|
||||||
a_prefix##nsearch(a_rbt_type *rbtree, a_type *key) { \
|
a_prefix##nsearch(a_rbt_type *rbtree, const a_type *key) { \
|
||||||
a_type *ret; \
|
a_type *ret; \
|
||||||
a_type *tnode = rbtree->rbt_root; \
|
a_type *tnode = rbtree->rbt_root; \
|
||||||
ret = &rbtree->rbt_nil; \
|
ret = &rbtree->rbt_nil; \
|
||||||
@ -446,7 +446,7 @@ a_prefix##nsearch(a_rbt_type *rbtree, a_type *key) { \
|
|||||||
return (ret); \
|
return (ret); \
|
||||||
} \
|
} \
|
||||||
a_attr a_type * \
|
a_attr a_type * \
|
||||||
a_prefix##psearch(a_rbt_type *rbtree, a_type *key) { \
|
a_prefix##psearch(a_rbt_type *rbtree, const a_type *key) { \
|
||||||
a_type *ret; \
|
a_type *ret; \
|
||||||
a_type *tnode = rbtree->rbt_root; \
|
a_type *tnode = rbtree->rbt_root; \
|
||||||
ret = &rbtree->rbt_nil; \
|
ret = &rbtree->rbt_nil; \
|
||||||
|
@ -62,7 +62,7 @@ arena_miscelm_key_size_get(const arena_chunk_map_misc_t *miscelm)
|
|||||||
}
|
}
|
||||||
|
|
||||||
JEMALLOC_INLINE_C size_t
|
JEMALLOC_INLINE_C size_t
|
||||||
arena_miscelm_size_get(arena_chunk_map_misc_t *miscelm)
|
arena_miscelm_size_get(const arena_chunk_map_misc_t *miscelm)
|
||||||
{
|
{
|
||||||
arena_chunk_t *chunk;
|
arena_chunk_t *chunk;
|
||||||
size_t pageind, mapbits;
|
size_t pageind, mapbits;
|
||||||
@ -76,7 +76,7 @@ arena_miscelm_size_get(arena_chunk_map_misc_t *miscelm)
|
|||||||
}
|
}
|
||||||
|
|
||||||
JEMALLOC_INLINE_C int
|
JEMALLOC_INLINE_C int
|
||||||
arena_run_comp(arena_chunk_map_misc_t *a, arena_chunk_map_misc_t *b)
|
arena_run_comp(const arena_chunk_map_misc_t *a, const arena_chunk_map_misc_t *b)
|
||||||
{
|
{
|
||||||
uintptr_t a_miscelm = (uintptr_t)a;
|
uintptr_t a_miscelm = (uintptr_t)a;
|
||||||
uintptr_t b_miscelm = (uintptr_t)b;
|
uintptr_t b_miscelm = (uintptr_t)b;
|
||||||
@ -169,7 +169,8 @@ run_quantize_first(size_t size)
|
|||||||
}
|
}
|
||||||
|
|
||||||
JEMALLOC_INLINE_C int
|
JEMALLOC_INLINE_C int
|
||||||
arena_avail_comp(arena_chunk_map_misc_t *a, arena_chunk_map_misc_t *b)
|
arena_avail_comp(const arena_chunk_map_misc_t *a,
|
||||||
|
const arena_chunk_map_misc_t *b)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
uintptr_t a_miscelm = (uintptr_t)a;
|
uintptr_t a_miscelm = (uintptr_t)a;
|
||||||
|
@ -15,7 +15,7 @@ extent_quantize(size_t size)
|
|||||||
}
|
}
|
||||||
|
|
||||||
JEMALLOC_INLINE_C int
|
JEMALLOC_INLINE_C int
|
||||||
extent_szad_comp(extent_node_t *a, extent_node_t *b)
|
extent_szad_comp(const extent_node_t *a, const extent_node_t *b)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
size_t a_qsize = extent_quantize(extent_node_size_get(a));
|
size_t a_qsize = extent_quantize(extent_node_size_get(a));
|
||||||
@ -41,7 +41,7 @@ rb_gen(, extent_tree_szad_, extent_tree_t, extent_node_t, szad_link,
|
|||||||
extent_szad_comp)
|
extent_szad_comp)
|
||||||
|
|
||||||
JEMALLOC_INLINE_C int
|
JEMALLOC_INLINE_C int
|
||||||
extent_ad_comp(extent_node_t *a, extent_node_t *b)
|
extent_ad_comp(const extent_node_t *a, const extent_node_t *b)
|
||||||
{
|
{
|
||||||
uintptr_t a_addr = (uintptr_t)extent_node_addr_get(a);
|
uintptr_t a_addr = (uintptr_t)extent_node_addr_get(a);
|
||||||
uintptr_t b_addr = (uintptr_t)extent_node_addr_get(b);
|
uintptr_t b_addr = (uintptr_t)extent_node_addr_get(b);
|
||||||
|
@ -21,7 +21,7 @@ struct node_s {
|
|||||||
};
|
};
|
||||||
|
|
||||||
static int
|
static int
|
||||||
node_cmp(node_t *a, node_t *b) {
|
node_cmp(const node_t *a, const node_t *b) {
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
assert_u32_eq(a->magic, NODE_MAGIC, "Bad magic");
|
assert_u32_eq(a->magic, NODE_MAGIC, "Bad magic");
|
||||||
|
Loading…
Reference in New Issue
Block a user