namespace detail {

struct rb_thread_struct {

VALUE self;
void *vm;
VALUE *stack;
unsigned long stack_size;
VALUE *cfp;
   ...

};

typedef struct rb_thread_struct rb_thread_t;

} // namespace detail

extern ā€œCā€ detail::rb_thread_t * ruby_current_thread;

inline VALUE *

Rice::detail

cfp() {

return ruby_current_thread->cfp;

}

inline VALUE &

Rice::detail

cfp_data_memo_node_and_pc(VALUE * cfp) {

return cfp[0];

}

inline VALUE &

Rice::detail

cfp_self(VALUE * cfp) {

return cfp[5];

}

inline VALUE &

Rice::detail

cfp_method_class(VALUE * cfp) {

return cfp[11];

}