51 total_i(
void *vstart,
void *vend,
size_t stride,
void *ptr)
56 for (v = (
VALUE)vstart; v != (
VALUE)vend; v += stride) {
147 cos_i(
void *vstart,
void *vend,
size_t stride,
void *data)
149 size_t *counts = (
size_t *)data;
152 for (;v != (
VALUE)vend; v += stride) {
165 #define CASE_TYPE(t) case t: type = ID2SYM(rb_intern(#t)); break; 193 default:
rb_bug(
"type2sym: unknown type (%d)", i);
229 for (i = 0; i <=
T_MASK; i++) {
242 for (i = 0; i <=
T_MASK; i++) {
259 cs_i(
void *vstart,
void *vend,
size_t stride,
void *n)
264 for (; v != (
VALUE)vend; v += stride) {
332 cn_i(
void *vstart,
void *vend,
size_t stride,
void *n)
334 size_t *nodes = (
size_t *)n;
337 for (; v != (
VALUE)vend; v += stride) {
394 #define COUNT_NODE(n) case n: node = ID2SYM(rb_intern(#n)); break; 508 cto_i(
void *vstart,
void *vend,
size_t stride,
void *data)
513 for (; v != (
VALUE)vend; v += stride) {
520 if (name == 0) name =
"unknown";
525 if (
NIL_P(counter)) {
587 for (; v != (
VALUE)vend; v += stride) {
594 if (
NIL_P(counter)) {
671 "ObjectSpace::InternalObjectWrapper",
817 VALUE category_objects;
828 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)
static unsigned int hash(str, len) register const char *str
static VALUE count_symbols(int argc, VALUE *argv, VALUE os)
const char * last_category
#define TypedData_Wrap_Struct(klass, data_type, sval)
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)
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)
static VALUE setup_hash(int argc, VALUE *argv)
void rb_gc_mark(VALUE ptr)
VALUE rb_hash_lookup(VALUE hash, VALUE key)
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 int cs_i(void *vstart, void *vend, size_t stride, void *n)
static VALUE reachable_objects_from(VALUE self, VALUE obj)
#define OBJ_BUILTIN_TYPE(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 VALUE objspace_internal_super_of(VALUE self, 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)
static int collect_values(st_data_t key, st_data_t value, st_data_t data)
static ID imemo_type_ids[imemo_mask+1]
static int collect_values_of_values(VALUE category, VALUE category_objects, VALUE categories)
VALUE rb_ident_hash_new(void)
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)
static VALUE objspace_internal_class_of(VALUE self, VALUE obj)
void rb_objspace_reachable_objects_from(VALUE obj, void(func)(VALUE, void *), void *data)
static VALUE wrap_klass_iow(VALUE klass)
VALUE rb_hash_aref(VALUE hash, VALUE key)
static VALUE iow_newobj(VALUE obj)
static VALUE type2sym(enum ruby_value_type i)
static int cn_i(void *vstart, void *vend, size_t stride, void *n)
static VALUE count_imemo_objects(int argc, VALUE *argv, VALUE self)
VALUE rb_define_module(const char *name)
size_t rb_sym_immortal_count(void)
void rb_define_method(VALUE klass, const char *name, VALUE(*func)(ANYARGS), int argc)
void Init_objspace_dump(VALUE rb_mObjSpace)
VALUE last_category_objects
static int count_imemo_objects_i(void *vstart, void *vend, size_t stride, void *data)
static void iow_mark(void *ptr)