まつもと ゆきひろです

In message "Re: [ruby-dev:38605] Re: [Feature: trunk] rb_objspace_each_objects"
    on Sun, 14 Jun 2009 12:30:55 +0900, SASADA Koichi <ko1 / atdot.net> writes:

|>  なんて名前がいいでしょうかね.
|
| ちょっと考えたのですが,こんなのはどうでしょうか.
|
|void rb_objspace_walk_heaps(
|    enum objspace_walk_retval (*callback)(VALUE start, VALUE end,
|                               size_t stride, void *data),
|    void *data);

このcallbackですが

  (*callback)(VALUE *values, size_t run, void* data)

でよいんでないですかね。「VALUEにstrideを足す」という操作が
不安です。

| こんな感じで 生きているオブジェクトを全部回ることができる,というイン
|ターフェースです.なお,free cell は渡されない可能性があります.
|walk_heaps だと,free cell 含めて渡らないとまずいかなぁ.

free cellは要らないんじゃないですかね。あと、heapというのは
Ruby GCの外では違う意味であるというakrさんの指摘もありますね。
objspace_walk_objectsで良いような気もします。