diff options
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | eval_intern.h | 2 | ||||
-rw-r--r-- | load.c | 4 | ||||
-rw-r--r-- | vm.c | 4 |
4 files changed, 12 insertions, 5 deletions
@@ -1,3 +1,10 @@ +Thu Jun 3 18:58:28 2010 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * load.c (ruby_init_ext): statically linked extensions have no + real path. [ruby-dev:41526] + + * vm.c (rb_vm_call_cfunc): add filepath argument. + Thu Jun 3 18:17:45 2010 Nobuyoshi Nakada <nobu@ruby-lang.org> * test/rake/test_win32.rb (Rake::TestWin32): update tests. diff --git a/eval_intern.h b/eval_intern.h index 549953acfc..909b10abc0 100644 --- a/eval_intern.h +++ b/eval_intern.h @@ -205,7 +205,7 @@ NORETURN(void rb_raise_method_missing(rb_thread_t *th, int argc, VALUE *argv, VALUE rb_vm_make_jump_tag_but_local_jump(int state, VALUE val); NODE *rb_vm_cref(void); -VALUE rb_vm_call_cfunc(VALUE recv, VALUE (*func)(VALUE), VALUE arg, const rb_block_t *blockptr, VALUE filename); +VALUE rb_vm_call_cfunc(VALUE recv, VALUE (*func)(VALUE), VALUE arg, const rb_block_t *blockptr, VALUE filename, VALUE filepath); void rb_vm_set_progname(VALUE filename); void rb_thread_terminate_all(void); VALUE rb_vm_top_self(); @@ -596,7 +596,7 @@ rb_require_safe(VALUE fname, int safe) case 's': handle = (long)rb_vm_call_cfunc(rb_vm_top_self(), load_ext, - path, 0, path); + path, 0, path, path); rb_ary_push(ruby_dln_librefs, LONG2NUM(handle)); break; } @@ -643,7 +643,7 @@ ruby_init_ext(const char *name, void (*init)(void)) { if (load_lock(name)) { rb_vm_call_cfunc(rb_vm_top_self(), init_ext_call, (VALUE)init, - 0, rb_str_new2(name)); + 0, rb_str_new2(name), Qnil); rb_provide(name); load_unlock(name, 1); } @@ -1444,11 +1444,11 @@ rb_thread_current_status(const rb_thread_t *th) VALUE rb_vm_call_cfunc(VALUE recv, VALUE (*func)(VALUE), VALUE arg, - const rb_block_t *blockptr, VALUE filename) + const rb_block_t *blockptr, VALUE filename, VALUE filepath) { rb_thread_t *th = GET_THREAD(); const rb_control_frame_t *reg_cfp = th->cfp; - volatile VALUE iseqval = rb_iseq_new(0, filename, filename, filename, 0, ISEQ_TYPE_TOP); + volatile VALUE iseqval = rb_iseq_new(0, filename, filename, filepath, 0, ISEQ_TYPE_TOP); VALUE val; vm_push_frame(th, DATA_PTR(iseqval), VM_FRAME_MAGIC_TOP, |