72 if (
RCLASS(obj)->ptr->iv_tbl) {
75 if (
RCLASS(obj)->ptr->const_tbl) {
87 if (
RHASH(obj)->ntbl) {
104 size +=
sizeof(
struct rmatch);
108 if (
RFILE(obj)->fptr) {
130 if (
RNODE(obj)->u1.tbl) {
151 rb_bug(
"objspace/memsize_of(): unknown data type 0x%x(%p)",
183 total_i(
void *vstart,
void *vend,
size_t stride,
void *ptr)
188 for (v = (
VALUE)vstart; v != (
VALUE)vend; v += stride) {
260 cos_i(
void *vstart,
void *vend,
size_t stride,
void *data)
262 size_t *counts = (
size_t *)data;
265 for (;v != (
VALUE)vend; v += stride) {
278 #define CASE_TYPE(t) case t: type = ID2SYM(rb_intern(#t)); break;
305 default:
rb_bug(
"type2sym: unknown type (%d)", i);
346 for (i = 0; i <=
T_MASK; i++) {
359 for (i = 0; i <=
T_MASK; i++) {
371 cn_i(
void *vstart,
void *vend,
size_t stride,
void *n)
373 size_t *nodes = (
size_t *)n;
376 for (; v != (
VALUE)vend; v += stride) {
437 #define COUNT_NODE(n) case n: node = ID2SYM(rb_intern(#n)); break;
554 cto_i(
void *vstart,
void *vend,
size_t stride,
void *data)
559 for (; v != (
VALUE)vend; v += stride) {
566 if (name == 0) name =
"unknown";
571 if (
NIL_P(counter)) {
653 "ObjectSpace::InternalObjectWrapper",
#define RB_TYPE_P(obj, type)
static VALUE count_objects_size(int argc, VALUE *argv, VALUE os)
static const rb_data_type_t iow_data_type
void rb_bug(const char *fmt,...)
static VALUE rb_mInternalObjectWrapper
st_table * st_init_numtable(void)
VALUE rb_const_get(VALUE, ID)
size_t onig_memsize(const regex_t *reg)
#define RSTRUCT_EMBED_LEN_MASK
VALUE rb_ary_push(VALUE ary, VALUE item)
static int cto_i(void *vstart, void *vend, size_t stride, void *data)
VALUE rb_define_class_under(VALUE outer, const char *name, VALUE super)
Defines a class under the namespace of outer.
void rb_raise(VALUE exc, const char *fmt,...)
static VALUE memsize_of_all_m(int argc, VALUE *argv, VALUE self)
size_t st_memsize(const st_table *)
static void reachable_object_from_i(VALUE obj, void *data_ptr)
void rb_objspace_each_objects(each_obj_callback *callback, void *data)
int rb_objspace_markable_object_p(VALUE obj)
int char_offset_num_allocated
const char * rb_objspace_data_type_name(VALUE obj)
static VALUE iow_type(VALUE self)
static size_t iow_size(const void *ptr)
int rb_typeddata_is_kind_of(VALUE obj, const rb_data_type_t *data_type)
static VALUE reachable_objects_from(VALUE self, VALUE obj)
size_t onig_region_memsize(const OnigRegion *regs)
static size_t memsize_of(VALUE obj)
static int total_i(void *vstart, void *vend, size_t stride, void *ptr)
#define RBIGNUM_DIGITS(b)
static VALUE memsize_of_m(VALUE self, VALUE obj)
static VALUE count_nodes(int argc, VALUE *argv, VALUE os)
struct rb_classext_struct rb_classext_t
VALUE rb_hash_aset(VALUE, VALUE, VALUE)
static VALUE iow_inspect(VALUE self)
void rb_define_module_function(VALUE module, const char *name, VALUE(*func)(ANYARGS), int argc)
Defines a module function for module.
int st_foreach(st_table *, int(*)(ANYARGS), st_data_t)
static VALUE iow_internal_object_id(VALUE self)
int rb_objspace_internal_object_p(VALUE obj)
VALUE rb_sprintf(const char *format,...)
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,...)
static int set_zero_i(st_data_t key, st_data_t val, st_data_t arg)
static int collect_values(st_data_t key, st_data_t value, st_data_t data)
VALUE rb_obj_is_kind_of(VALUE, VALUE)
static int cos_i(void *vstart, void *vend, size_t stride, void *data)
void rb_objspace_reachable_objects_from(VALUE obj, void(func)(VALUE, void *), void *data)
RUBY_EXTERN VALUE rb_cObject
static VALUE iow_newobj(VALUE obj)
static VALUE type2sym(enum ruby_value_type i)
int st_insert(st_table *, st_data_t, st_data_t)
static unsigned int hash(const char *str, unsigned int len)
#define RCLASS_IV_INDEX_TBL(c)
static int cn_i(void *vstart, void *vend, size_t stride, void *n)
size_t rb_str_memsize(VALUE)
const char * rb_id2name(ID id)
VALUE rb_hash_aref(VALUE, VALUE)
VALUE rb_data_typed_object_alloc(VALUE klass, void *datap, const rb_data_type_t *)
#define SPECIAL_CONST_P(x)
size_t rb_ary_memsize(VALUE)
size_t rb_generic_ivar_memsize(VALUE)
void rb_define_method(VALUE klass, const char *name, VALUE(*func)(ANYARGS), int argc)
#define RBIGNUM_EMBED_FLAG
size_t rb_objspace_data_type_memsize(VALUE obj)
static void iow_mark(void *ptr)