70 if (
RCLASS(obj)->ptr->iv_tbl) {
73 if (
RCLASS(obj)->ptr->const_tbl) {
85 if (
RHASH(obj)->ntbl) {
102 size +=
sizeof(
struct rmatch);
106 if (
RFILE(obj)->fptr) {
128 if (
RNODE(obj)->u1.tbl) {
149 rb_bug(
"objspace/memsize_of(): unknown data type 0x%x(%p)",
181 total_i(
void *vstart,
void *vend,
size_t stride,
void *ptr)
186 for (v = (
VALUE)vstart; v != (
VALUE)vend; v += stride) {
258 cos_i(
void *vstart,
void *vend,
size_t stride,
void *data)
260 size_t *counts = (
size_t *)data;
263 for (;v != (
VALUE)vend; v += stride) {
307 for (i = 0; i <=
T_MASK; i++) {
320 for (i = 0; i <=
T_MASK; i++) {
324 #define COUNT_TYPE(t) case t: type = ID2SYM(rb_intern(#t)); break;
351 default: type =
INT2NUM(i);
break;
362 cn_i(
void *vstart,
void *vend,
size_t stride,
void *n)
364 size_t *nodes = (
size_t *)n;
367 for (; v != (
VALUE)vend; v += stride) {
428 #define COUNT_NODE(n) case n: node = ID2SYM(rb_intern(#n)); break;
543 cto_i(
void *vstart,
void *vend,
size_t stride,
void *data)
548 for (; v != (
VALUE)vend; v += stride) {
555 if (name == 0) name =
"unknown";
560 if (
NIL_P(counter)) {
static VALUE count_objects_size(int argc, VALUE *argv, VALUE os)
void rb_bug(const char *fmt,...)
size_t onig_memsize(const regex_t *reg)
static VALUE INT2NUM(int v)
static int cto_i(void *vstart, void *vend, size_t stride, void *data)
void rb_raise(VALUE exc, const char *fmt,...)
static VALUE memsize_of_all_m(int argc, VALUE *argv, VALUE self)
VALUE rb_obj_is_kind_of(VALUE, VALUE)
void rb_objspace_each_objects(each_obj_callback *callback, void *data)
#define RSTRUCT_EMBED_LEN_MASK
int char_offset_num_allocated
VALUE rb_hash_aset(VALUE hash, VALUE key, VALUE val)
RUBY_EXTERN VALUE rb_cObject
static size_t memsize_of(VALUE obj)
#define RBIGNUM_DIGITS(b)
static int total_i(void *vstart, void *vend, size_t stride, void *ptr)
static VALUE memsize_of_m(VALUE self, VALUE obj)
static VALUE count_nodes(int argc, VALUE *argv, VALUE os)
VALUE rb_const_get(VALUE, ID)
void rb_define_module_function(VALUE module, const char *name, VALUE(*func)(ANYARGS), int argc)
Defines a module function for module.
size_t rb_io_memsize(const rb_io_t *)
static VALUE count_tdata_objects(int argc, VALUE *argv, VALUE self)
int rb_scan_args(int argc, const VALUE *argv, const char *fmt,...)
const char * rb_objspace_data_type_name(VALUE obj)
static int set_zero_i(st_data_t key, st_data_t val, st_data_t arg)
static int cos_i(void *vstart, void *vend, size_t stride, void *data)
size_t st_memsize(const st_table *)
VALUE rb_hash_aref(VALUE hash, VALUE key)
#define RCLASS_IV_INDEX_TBL(c)
struct rb_classext_struct rb_classext_t
static unsigned int hash(const char *str, unsigned int len)
static int cn_i(void *vstart, void *vend, size_t stride, void *n)
size_t rb_str_memsize(VALUE)
#define RBIGNUM_EMBED_FLAG
#define SPECIAL_CONST_P(x)
size_t rb_ary_memsize(VALUE)
size_t rb_generic_ivar_memsize(VALUE)
size_t rb_objspace_data_type_memsize(VALUE obj)