Ruby  2.5.0dev(2017-10-22revision60238)
Data Structures | Macros | Typedefs | Functions
id_table.c File Reference
#include "id_table.h"
#include "ruby_assert.h"

Go to the source code of this file.

Data Structures

struct  rb_id_item
 
struct  rb_id_table
 

Macros

#define ID_TABLE_DEBUG   0
 
#define NDEBUG
 
#define ITEM_GET_KEY(tbl, i)   ((tbl)->items[i].key >> 1)
 
#define ITEM_KEY_ISSET(tbl, i)   ((tbl)->items[i].key > 1)
 
#define ITEM_COLLIDED(tbl, i)   ((tbl)->items[i].key & 1)
 
#define ITEM_SET_COLLIDED(tbl, i)   ((tbl)->items[i].key |= 1)
 

Typedefs

typedef rb_id_serial_t id_key_t
 
typedef struct rb_id_item item_t
 

Functions

struct rb_id_tablerb_id_table_create (size_t capa)
 
void rb_id_table_free (struct rb_id_table *tbl)
 
void rb_id_table_clear (struct rb_id_table *tbl)
 
size_t rb_id_table_size (const struct rb_id_table *tbl)
 
size_t rb_id_table_memsize (const struct rb_id_table *tbl)
 
int rb_id_table_lookup (struct rb_id_table *tbl, ID id, VALUE *valp)
 
int rb_id_table_insert (struct rb_id_table *tbl, ID id, VALUE val)
 
int rb_id_table_delete (struct rb_id_table *tbl, ID id)
 
void rb_id_table_foreach (struct rb_id_table *tbl, rb_id_table_foreach_func_t *func, void *data)
 
void rb_id_table_foreach_values (struct rb_id_table *tbl, rb_id_table_foreach_values_func_t *func, void *data)
 

Macro Definition Documentation

◆ ID_TABLE_DEBUG

#define ID_TABLE_DEBUG   0

Definition at line 6 of file id_table.c.

◆ ITEM_COLLIDED

#define ITEM_COLLIDED (   tbl,
 
)    ((tbl)->items[i].key & 1)

Definition at line 60 of file id_table.c.

◆ ITEM_GET_KEY

#define ITEM_GET_KEY (   tbl,
 
)    ((tbl)->items[i].key >> 1)

Definition at line 58 of file id_table.c.

Referenced by rb_id_table_foreach().

◆ ITEM_KEY_ISSET

#define ITEM_KEY_ISSET (   tbl,
 
)    ((tbl)->items[i].key > 1)

Definition at line 59 of file id_table.c.

Referenced by rb_id_table_foreach(), and rb_id_table_foreach_values().

◆ ITEM_SET_COLLIDED

#define ITEM_SET_COLLIDED (   tbl,
 
)    ((tbl)->items[i].key |= 1)

Definition at line 61 of file id_table.c.

◆ NDEBUG

#define NDEBUG

Definition at line 10 of file id_table.c.

Typedef Documentation

◆ id_key_t

Definition at line 14 of file id_table.c.

◆ item_t

typedef struct rb_id_item item_t

Function Documentation

◆ rb_id_table_clear()

void rb_id_table_clear ( struct rb_id_table tbl)

◆ rb_id_table_create()

struct rb_id_table* rb_id_table_create ( size_t  capa)

Definition at line 95 of file id_table.c.

References ALLOC.

Referenced by Init_var_tables().

◆ rb_id_table_delete()

int rb_id_table_delete ( struct rb_id_table tbl,
ID  id 
)

Definition at line 262 of file id_table.c.

References rb_id_item::key.

Referenced by rb_const_remove().

◆ rb_id_table_foreach()

void rb_id_table_foreach ( struct rb_id_table tbl,
rb_id_table_foreach_func_t func,
void *  data 
)

◆ rb_id_table_foreach_values()

void rb_id_table_foreach_values ( struct rb_id_table tbl,
rb_id_table_foreach_values_func_t func,
void *  data 
)

◆ rb_id_table_free()

void rb_id_table_free ( struct rb_id_table tbl)

Definition at line 102 of file id_table.c.

References rb_id_table::items, and xfree().

◆ rb_id_table_insert()

int rb_id_table_insert ( struct rb_id_table tbl,
ID  id,
VALUE  val 
)

Definition at line 256 of file id_table.c.

Referenced by rb_alias_variable(), and rb_global_entry().

◆ rb_id_table_lookup()

int rb_id_table_lookup ( struct rb_id_table tbl,
ID  id,
VALUE valp 
)

Definition at line 226 of file id_table.c.

References rb_id_item::key.

Referenced by rb_alias_variable(), rb_const_lookup(), rb_f_untrace_var(), and rb_global_entry().

◆ rb_id_table_memsize()

size_t rb_id_table_memsize ( const struct rb_id_table tbl)

Definition at line 123 of file id_table.c.

References rb_id_table::capa.

◆ rb_id_table_size()

size_t rb_id_table_size ( const struct rb_id_table tbl)

Definition at line 117 of file id_table.c.

References rb_id_table::num.

Referenced by rb_class_has_methods().