passing proc objects to ruby extensions

S

Stuart Trail

Hi list! Its a been a while since I was around here, but I remember it
being the place to ask these sorts of questions, especially since Yarv
has now merged into real Ruby.

How does a proc object get passed when writing a ruby extension in c?
ie

**Ruby**
a = Proc.new{|z| z*2}
f(a)

**C**
void f(VALUE a){
switch(TYPE(a)){
...
}
}


None of the usual types match. What is 'a' here? There doesn't seem to
be a struct for Procs in ruby.h. Might it be a pointer to the iseq
struct? :)

(FTR, I'm mesing around with what is now quite an old build -
yarv-0.4.1, I'm hoping it hasn't changed much since the merge?)

warm regards,
stu
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,777
Messages
2,569,604
Members
45,216
Latest member
Best cryptoconsultant

Latest Threads

Top