diff options
author | ko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2012-10-05 08:14:09 +0000 |
---|---|---|
committer | ko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2012-10-05 08:14:09 +0000 |
commit | e03d6d9eb84764cb854dc500ce8c19d85db53656 (patch) | |
tree | f0682f240c20512d7c888921ce72ecf4f697cc46 /gc.h | |
parent | 7cc6bfa32947dcc60dab6e47250409b7962b29e7 (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.h | 3 |
1 files changed, 3 insertions, 0 deletions
@@ -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); |