More...
#include <string.h>
#include <mruby.h>
#include "common.h"
Go to the source code of this file.
|
#define | KHASH_DEFAULT_SIZE 32 |
|
#define | KHASH_MIN_SIZE 8 |
|
#define | UPPER_BOUND(x) |
|
#define | __ac_isempty(ed_flag, i) |
|
#define | __ac_isdel(ed_flag, i) |
|
#define | __ac_iseither(ed_flag, i) |
|
#define | khash_power2(v) |
|
#define | khash_mask(h) |
|
#define | khash_upper_bound(h) |
|
#define | KHASH_DECLARE(name, khkey_t, khval_t, kh_is_map) |
|
#define | KHASH_DEFINE(name, khkey_t, khval_t, kh_is_map, __hash_func, __hash_equal) |
|
#define | khash_t(name) |
|
#define | kh_init_size(name, mrb, size) |
|
#define | kh_init(name, mrb) |
|
#define | kh_destroy(name, mrb, h) |
|
#define | kh_clear(name, mrb, h) |
|
#define | kh_resize(name, mrb, h, s) |
|
#define | kh_put(name, mrb, h, k) |
|
#define | kh_put2(name, mrb, h, k, r) |
|
#define | kh_get(name, mrb, h, k) |
|
#define | kh_del(name, mrb, h, k) |
|
#define | kh_copy(name, mrb, h) |
|
#define | kh_exist(h, x) |
|
#define | kh_key(h, x) |
|
#define | kh_val(h, x) |
|
#define | kh_value(h, x) |
|
#define | kh_begin(h) |
|
#define | kh_end(h) |
|
#define | kh_size(h) |
|
#define | kh_n_buckets(h) |
|
#define | kh_int_hash_func(mrb, key) |
|
#define | kh_int_hash_equal(mrb, a, b) |
|
#define | kh_int64_hash_func(mrb, key) |
|
#define | kh_int64_hash_equal(mrb, a, b) |
|
#define | kh_str_hash_func(mrb, key) |
|
#define | kh_str_hash_equal(mrb, a, b) |
|
|
typedef uint32_t | khint_t |
| khash definitions used in mruby's hash table.
|
|
typedef khint_t | khiter_t |
|
typedef const char * | kh_cstr_t |
|
|
static void | kh_fill_flags (uint8_t *p, uint8_t c, size_t len) |
|
static khint_t | __ac_X31_hash_string (const char *s) |
|
|
static const uint8_t | __m_empty [] = {0x02, 0x08, 0x20, 0x80} |
|
static const uint8_t | __m_del [] = {0x01, 0x04, 0x10, 0x40} |
|
static const uint8_t | __m_either [] = {0x03, 0x0c, 0x30, 0xc0} |
|
See Copyright Notice in mruby.h
◆ __ac_isdel
#define __ac_isdel |
( |
| ed_flag, |
|
|
| i ) |
Value:(ed_flag[(i)/4]&__m_del[(i)%4])
◆ __ac_iseither
#define __ac_iseither |
( |
| ed_flag, |
|
|
| i ) |
Value:(ed_flag[(i)/4]&__m_either[(i)%4])
◆ __ac_isempty
#define __ac_isempty |
( |
| ed_flag, |
|
|
| i ) |
Value:(ed_flag[(i)/4]&__m_empty[(i)%4])
◆ kh_begin
Value:
uint32_t khint_t
khash definitions used in mruby's hash table.
Definition khash.h:20
◆ kh_clear
#define kh_clear |
( |
| name, |
|
|
| mrb, |
|
|
| h ) |
◆ kh_copy
#define kh_copy |
( |
| name, |
|
|
| mrb, |
|
|
| h ) |
◆ kh_del
#define kh_del |
( |
| name, |
|
|
| mrb, |
|
|
| h, |
|
|
| k ) |
◆ kh_destroy
#define kh_destroy |
( |
| name, |
|
|
| mrb, |
|
|
| h ) |
Value:kh_destroy_##name(mrb, h)
◆ kh_end
◆ kh_exist
#define kh_exist |
( |
| h, |
|
|
| x ) |
Value:(!__ac_iseither((h)->ed_flags, (x)))
◆ kh_get
#define kh_get |
( |
| name, |
|
|
| mrb, |
|
|
| h, |
|
|
| k ) |
◆ kh_init
#define kh_init |
( |
| name, |
|
|
| mrb ) |
◆ kh_init_size
#define kh_init_size |
( |
| name, |
|
|
| mrb, |
|
|
| size ) |
Value:kh_init_##name##_size(mrb,size)
◆ kh_int64_hash_equal
#define kh_int64_hash_equal |
( |
| mrb, |
|
|
| a, |
|
|
| b ) |
◆ kh_int64_hash_func
#define kh_int64_hash_func |
( |
| mrb, |
|
|
| key ) |
Value:(
khint_t)((key)>>33^(key)^(key)<<11)
◆ kh_int_hash_equal
#define kh_int_hash_equal |
( |
| mrb, |
|
|
| a, |
|
|
| b ) |
◆ kh_int_hash_func
#define kh_int_hash_func |
( |
| mrb, |
|
|
| key ) |
Value:(
khint_t)((key)^((key)<<2)^((key)>>2))
◆ kh_key
◆ kh_n_buckets
#define kh_n_buckets |
( |
| h | ) |
|
◆ kh_put
#define kh_put |
( |
| name, |
|
|
| mrb, |
|
|
| h, |
|
|
| k ) |
Value:kh_put_##name(mrb, h, k, NULL)
◆ kh_put2
#define kh_put2 |
( |
| name, |
|
|
| mrb, |
|
|
| h, |
|
|
| k, |
|
|
| r ) |
Value:kh_put_##name(mrb, h, k, r)
◆ kh_resize
#define kh_resize |
( |
| name, |
|
|
| mrb, |
|
|
| h, |
|
|
| s ) |
Value:kh_resize_##name(mrb, h, s)
◆ kh_size
◆ kh_str_hash_equal
#define kh_str_hash_equal |
( |
| mrb, |
|
|
| a, |
|
|
| b ) |
◆ kh_str_hash_func
#define kh_str_hash_func |
( |
| mrb, |
|
|
| key ) |
Value:__ac_X31_hash_string(key)
◆ kh_val
◆ kh_value
#define kh_value |
( |
| h, |
|
|
| x ) |
◆ KHASH_DECLARE
#define KHASH_DECLARE |
( |
| name, |
|
|
| khkey_t, |
|
|
| khval_t, |
|
|
| kh_is_map ) |
Value: typedef struct kh_##name { \
uint8_t *ed_flags; \
khkey_t *keys; \
khval_t *vals; \
} kh_##name##_t; \
void kh_alloc_##name(
mrb_state *mrb, kh_##name##_t *h); \
kh_##name##_t *kh_init_##name(
mrb_state *mrb); \
void kh_destroy_##name(
mrb_state *mrb, kh_##name##_t *h); \
void kh_clear_##name(
mrb_state *mrb, kh_##name##_t *h); \
khint_t kh_put_##name(
mrb_state *mrb, kh_##name##_t *h, khkey_t key,
int *ret); \
void kh_resize_##name(
mrb_state *mrb, kh_##name##_t *h,
khint_t new_n_buckets); \
kh_##name##_t *kh_copy_##name(
mrb_state *mrb, kh_##name##_t *h);
◆ khash_mask
◆ khash_power2
#define khash_power2 |
( |
| v | ) |
|
Value: do { \
v--;\
v |= v >> 1;\
v |= v >> 2;\
v |= v >> 4;\
v |= v >> 8;\
v |= v >> 16;\
v++;\
} while (0)
◆ khash_t
◆ khash_upper_bound
#define khash_upper_bound |
( |
| h | ) |
|
Value:(UPPER_BOUND((h)->n_buckets))
◆ UPPER_BOUND