* load.c (ruby_init_ext): statically linked extensions have no

real path.  [ruby-dev:41526]

* vm.c (rb_vm_call_cfunc): add filepath argument.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28147 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nobu 2010-06-03 09:58:32 +00:00
Родитель 140d43a73f
Коммит 7336f32c3b
4 изменённых файлов: 12 добавлений и 5 удалений

Просмотреть файл

@ -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.

Просмотреть файл

@ -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();

4
load.c
Просмотреть файл

@ -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);
}

4
vm.c
Просмотреть файл

@ -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,