зеркало из https://github.com/github/ruby.git
* vm_insnhelper.c (vm_method_missing): copy arguments to allocated
memory from machine stack. [ruby-dev:36064] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19072 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
Родитель
41e1933fd8
Коммит
095ae8fd84
|
@ -1,3 +1,8 @@
|
|||
Wed Sep 3 00:23:25 2008 Yusuke Endoh <mame@tsg.ne.jp>
|
||||
|
||||
* vm_insnhelper.c (vm_method_missing): copy arguments to allocated
|
||||
memory from machine stack. [ruby-dev:36064]
|
||||
|
||||
Tue Sep 2 22:20:26 2008 Tanaka Akira <akr@fsij.org>
|
||||
|
||||
* transcode_data.h (base_element): removed.
|
||||
|
|
|
@ -410,13 +410,14 @@ vm_method_missing(rb_thread_t *th, ID id, VALUE recv,
|
|||
int num, rb_block_t *blockptr, int opt)
|
||||
{
|
||||
rb_control_frame_t * const reg_cfp = th->cfp;
|
||||
VALUE *argv = STACK_ADDR_FROM_TOP(num + 1);
|
||||
VALUE *argv = ALLOCA_N(VALUE, num + 1);
|
||||
MEMCPY(argv, STACK_ADDR_FROM_TOP(num + 1), VALUE, num + 1);
|
||||
VALUE val;
|
||||
argv[0] = ID2SYM(id);
|
||||
th->method_missing_reason = opt;
|
||||
th->passed_block = blockptr;
|
||||
val = rb_funcall2(recv, idMethodMissing, num + 1, argv);
|
||||
POPN(num + 1);
|
||||
val = rb_funcall2(recv, idMethodMissing, num + 1, argv);
|
||||
return val;
|
||||
}
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче