Skip to content

Commit

Permalink
ruby: call RUBY_INIT_STACK
Browse files Browse the repository at this point in the history
  • Loading branch information
jjyg committed Sep 19, 2014
1 parent d75c01b commit c894346
Showing 1 changed file with 6 additions and 0 deletions.
6 changes: 6 additions & 0 deletions plugins/ruby/ruby.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -293,6 +293,7 @@ typedef unsigned long ID;
#define FIX2INT(i) (((long)i) >> 1)
#define RUBY_METHOD_FUNC(func) ((VALUE(*)(...))func)

void (*ruby_init_stack)(VALUE*);
void (*ruby_sysinit)(int *, const char ***);
void (*ruby_init)(void);
void (*ruby_init_loadpath)(void);
Expand Down Expand Up @@ -337,6 +338,7 @@ static int df_loadruby(void)
// ruby_sysinit is optional (ruby1.9 only)
ruby_sysinit = (decltype(ruby_sysinit))LookupPlugin(libruby_handle, "ruby_sysinit");
#define rbloadsym(s) if (!(s = (decltype(s))LookupPlugin(libruby_handle, #s))) return 0
rbloadsym(ruby_init_stack);
rbloadsym(ruby_init);
rbloadsym(ruby_init_loadpath);
rbloadsym(ruby_script);
Expand Down Expand Up @@ -401,6 +403,10 @@ static void df_rubythread(void *p)
{
int state, running;

// may need to be run from df main thread?
VALUE foo;
ruby_init_stack(&foo);

if (ruby_sysinit) {
// ruby1.9 specific API
static int argc;
Expand Down

0 comments on commit c894346

Please sign in to comment.