48 total_i(
void *vstart,
void *vend,
size_t stride,
void *ptr)
53 for (v = (
VALUE)vstart; v != (
VALUE)vend; v += stride) {
126 cos_i(
void *vstart,
void *vend,
size_t stride,
void *data)
128 size_t *counts = (
size_t *)data;
131 for (;v != (
VALUE)vend; v += stride) {
144 #define CASE_TYPE(t) case t: type = ID2SYM(rb_intern(#t)); break; 171 default:
rb_bug(
"type2sym: unknown type (%d)", i);
212 for (i = 0; i <=
T_MASK; i++) {
225 for (i = 0; i <=
T_MASK; i++) {
237 cn_i(
void *vstart,
void *vend,
size_t stride,
void *n)
239 size_t *nodes = (
size_t *)n;
242 for (; v != (
VALUE)vend; v += stride) {
304 #define COUNT_NODE(n) case n: node = ID2SYM(rb_intern(#n)); break; 421 cto_i(
void *vstart,
void *vend,
size_t stride,
void *data)
426 for (; v != (
VALUE)vend; v += stride) {
438 if (
NIL_P(counter)) {
520 "ObjectSpace::InternalObjectWrapper",
666 VALUE category_objects;
678 rb_bug(
"reachable_object_from_root_i: category should insert at once");
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,...)
#define RUBY_TYPED_FREE_IMMEDIATELY
static VALUE rb_mInternalObjectWrapper
VALUE rb_obj_id(VALUE obj)
const char * last_category
int st_insert(st_table *, st_data_t, st_data_t)
VALUE rb_ary_push(VALUE ary, VALUE item)
void rb_objspace_reachable_objects_from_root(void(func)(const char *category, VALUE, void *), void *passing_data)
VALUE rb_funcall(VALUE, ID, int,...)
Calls a method.
struct st_table * rb_hash_tbl(VALUE hash)
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)
VALUE rb_obj_is_kind_of(VALUE, VALUE)
static void reachable_object_from_i(VALUE obj, void *data_ptr)
void rb_objspace_each_objects(each_obj_callback *callback, void *data)
void rb_gc_mark(VALUE ptr)
int rb_objspace_markable_object_p(VALUE obj)
RUBY_SYMBOL_EXPORT_BEGIN typedef unsigned long st_data_t
void rb_hash_foreach(VALUE hash, int(*func)(ANYARGS), VALUE farg)
size_t rb_obj_memsize_of(VALUE obj)
#define RB_TYPE_P(obj, type)
static VALUE iow_type(VALUE self)
static size_t iow_size(const void *ptr)
VALUE rb_hash_aset(VALUE hash, VALUE key, VALUE val)
RUBY_EXTERN VALUE rb_cObject
int rb_typeddata_is_kind_of(VALUE obj, const rb_data_type_t *data_type)
static VALUE reachable_objects_from(VALUE self, VALUE obj)
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)
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.
static VALUE iow_internal_object_id(VALUE self)
static VALUE reachable_objects_from_root(VALUE self)
int rb_objspace_internal_object_p(VALUE obj)
VALUE rb_sprintf(const char *format,...)
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)
void Init_object_tracing(VALUE rb_mObjSpace)
st_table * st_init_numtable(void)
static int collect_values(st_data_t key, st_data_t value, st_data_t data)
VALUE rb_data_typed_object_alloc(VALUE klass, void *datap, const rb_data_type_t *type)
static int collect_values_of_values(VALUE category, VALUE category_objects, VALUE categories)
static int cos_i(void *vstart, void *vend, size_t stride, void *data)
static void reachable_object_from_root_i(const char *category, VALUE obj, void *ptr)
void rb_objspace_reachable_objects_from(VALUE obj, void(func)(VALUE, void *), void *data)
VALUE rb_hash_aref(VALUE hash, VALUE key)
static VALUE iow_newobj(VALUE obj)
static VALUE type2sym(enum ruby_value_type i)
static unsigned int hash(const char *str, unsigned int len)
static int cn_i(void *vstart, void *vend, size_t stride, void *n)
const char * rb_id2name(ID id)
VALUE rb_define_module(const char *name)
void rb_define_method(VALUE klass, const char *name, VALUE(*func)(ANYARGS), int argc)
void Init_objspace_dump(VALUE rb_mObjSpace)
int st_foreach(st_table *, int(*)(ANYARGS), st_data_t)
VALUE last_category_objects
static void iow_mark(void *ptr)