summaryrefslogtreecommitdiff
path: root/gc.h
diff options
context:
space:
mode:
authorko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-10-05 08:14:09 +0000
committerko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-10-05 08:14:09 +0000
commite03d6d9eb84764cb854dc500ce8c19d85db53656 (patch)
treef0682f240c20512d7c888921ce72ecf4f697cc46 /gc.h
parent7cc6bfa32947dcc60dab6e47250409b7962b29e7 (diff)
* ext/objspace/objspace.c: add ObjectSpace#reachable_objects_from.
This method returns an array of objects referenced by given object. If given object is special objects such as true/false/nil/Fixnum etc then it returns nil. See rdoc for details. [ruby-core:39772] * test/objspace/test_objspace.rb: add a test for this method. * gc.c: add rb_objspace_reachable_objects_from(). To make this function, add several member `mark_func_data' to rb_objspace_t. If mark_func_data is not null, then gc_mark() calls mark_func_data::mark_func. * gc.h: export rb_objspace_reachable_objects_from(). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37094 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'gc.h')
-rw-r--r--gc.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/gc.h b/gc.h
index 96d22a6e09..741945349d 100644
--- a/gc.h
+++ b/gc.h
@@ -87,7 +87,10 @@ int ruby_get_stack_grow_direction(volatile VALUE *addr);
#pragma GCC visibility push(default)
#endif
+/* exports for objspace module */
size_t rb_objspace_data_type_memsize(VALUE obj);
+VALUE rb_objspace_reachable_objects_from(VALUE obj);
+
void rb_objspace_each_objects(
int (*callback)(void *start, void *end, size_t stride, void *data),
void *data);