* eval.c (Init_eval): should mark ruby_eval_tree. [ruby-dev:25189]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7548 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
96439f2a4a
commit
21ae9c745a
@ -1,3 +1,7 @@
|
|||||||
|
Tue Dec 14 08:47:45 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
|
||||||
|
|
||||||
|
* eval.c (Init_eval): should mark ruby_eval_tree. [ruby-dev:25189]
|
||||||
|
|
||||||
Mon Dec 13 18:13:52 2004 Tanaka Akira <akr@m17n.org>
|
Mon Dec 13 18:13:52 2004 Tanaka Akira <akr@m17n.org>
|
||||||
|
|
||||||
* gc.c (set_stack_end): new function to obtain stack end address.
|
* gc.c (set_stack_end): new function to obtain stack end address.
|
||||||
|
68
eval.c
68
eval.c
@ -5832,32 +5832,6 @@ rb_f_send(argc, argv, recv)
|
|||||||
return vid;
|
return vid;
|
||||||
}
|
}
|
||||||
|
|
||||||
static VALUE
|
|
||||||
vafuncall(recv, mid, n, ar)
|
|
||||||
VALUE recv;
|
|
||||||
ID mid;
|
|
||||||
int n;
|
|
||||||
va_list *ar;
|
|
||||||
{
|
|
||||||
VALUE *argv;
|
|
||||||
|
|
||||||
if (n > 0) {
|
|
||||||
long i;
|
|
||||||
|
|
||||||
argv = ALLOCA_N(VALUE, n);
|
|
||||||
|
|
||||||
for (i=0;i<n;i++) {
|
|
||||||
argv[i] = va_arg(*ar, VALUE);
|
|
||||||
}
|
|
||||||
va_end(*ar);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
argv = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
return rb_call(CLASS_OF(recv), recv, mid, n, argv, 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
VALUE
|
VALUE
|
||||||
#ifdef HAVE_STDARG_PROTOTYPES
|
#ifdef HAVE_STDARG_PROTOTYPES
|
||||||
rb_funcall(VALUE recv, ID mid, int n, ...)
|
rb_funcall(VALUE recv, ID mid, int n, ...)
|
||||||
@ -5869,42 +5843,25 @@ rb_funcall(recv, mid, n, va_alist)
|
|||||||
va_dcl
|
va_dcl
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
|
VALUE *argv;
|
||||||
va_list ar;
|
va_list ar;
|
||||||
va_init_list(ar, n);
|
va_init_list(ar, n);
|
||||||
|
|
||||||
return vafuncall(recv, mid, n, &ar);
|
if (n > 0) {
|
||||||
}
|
long i;
|
||||||
|
|
||||||
VALUE
|
argv = ALLOCA_N(VALUE, n);
|
||||||
#ifdef HAVE_STDARG_PROTOTYPES
|
|
||||||
rb_funcall_rescue(VALUE recv, ID mid, int n, ...)
|
|
||||||
#else
|
|
||||||
rb_funcall_rescue(recv, mid, n, va_alist)
|
|
||||||
VALUE recv;
|
|
||||||
ID mid;
|
|
||||||
int n;
|
|
||||||
va_dcl
|
|
||||||
#endif
|
|
||||||
{
|
|
||||||
VALUE result = Qnil; /* OK */
|
|
||||||
int status;
|
|
||||||
va_list ar;
|
|
||||||
|
|
||||||
va_init_list(ar, n);
|
for (i=0;i<n;i++) {
|
||||||
|
argv[i] = va_arg(ar, VALUE);
|
||||||
PUSH_TAG(PROT_NONE);
|
}
|
||||||
if ((status = EXEC_TAG()) == 0) {
|
va_end(ar);
|
||||||
result = vafuncall(recv, mid, n, &ar);
|
|
||||||
}
|
}
|
||||||
POP_TAG();
|
else {
|
||||||
switch (status) {
|
argv = 0;
|
||||||
case 0:
|
|
||||||
return result;
|
|
||||||
case TAG_RAISE:
|
|
||||||
return Qundef;
|
|
||||||
default:
|
|
||||||
JUMP_TAG(status);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return rb_call(CLASS_OF(recv), recv, mid, n, argv, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
VALUE
|
VALUE
|
||||||
@ -7610,6 +7567,7 @@ Init_eval()
|
|||||||
__send__ = rb_intern("__send__");
|
__send__ = rb_intern("__send__");
|
||||||
|
|
||||||
rb_global_variable((VALUE*)&top_scope);
|
rb_global_variable((VALUE*)&top_scope);
|
||||||
|
rb_global_variable((VALUE*)&ruby_eval_tree);
|
||||||
rb_global_variable((VALUE*)&ruby_dyna_vars);
|
rb_global_variable((VALUE*)&ruby_dyna_vars);
|
||||||
|
|
||||||
rb_define_virtual_variable("$@", errat_getter, errat_setter);
|
rb_define_virtual_variable("$@", errat_getter, errat_setter);
|
||||||
|
1
intern.h
1
intern.h
@ -224,7 +224,6 @@ VALUE rb_thread_main _((void));
|
|||||||
VALUE rb_thread_local_aref _((VALUE, ID));
|
VALUE rb_thread_local_aref _((VALUE, ID));
|
||||||
VALUE rb_thread_local_aset _((VALUE, ID, VALUE));
|
VALUE rb_thread_local_aset _((VALUE, ID, VALUE));
|
||||||
void rb_thread_atfork _((void));
|
void rb_thread_atfork _((void));
|
||||||
VALUE rb_funcall_rescue __((VALUE, ID, int, ...));
|
|
||||||
/* file.c */
|
/* file.c */
|
||||||
int eaccess _((const char*, int));
|
int eaccess _((const char*, int));
|
||||||
VALUE rb_file_s_expand_path _((int, VALUE *));
|
VALUE rb_file_s_expand_path _((int, VALUE *));
|
||||||
|
Loading…
x
Reference in New Issue
Block a user