43 if (!def)
return Qnil;
60 *reg_cfp->
sp++ = recv;
61 for (i = 0; i <
argc; i++) {
62 *reg_cfp->
sp++ = argv[
i];
76 recv, (
VALUE)blockptr, 0, reg_cfp->
sp, 0, 1);
81 if (reg_cfp != th->
cfp + 1) {
82 rb_bug(
"cfp consistency error - call0");
113 if (!(def = me->
def))
return Qnil;
127 case OPTIMIZED_METHOD_TYPE_SEND:
130 case OPTIMIZED_METHOD_TYPE_CALL: {
144 rb_bug(
"vm_call0: unsupported method type (%d)", def->
type);
155 return vm_call0(th, recv,
id, argc, argv, me);
177 rb_bug(
"vm_call_super: should not be reached");
185 return vm_call0(th, recv,
id, argc, argv, me);
208 #define NOEX_OK NOEX_NOSUPER
236 return vm_call0(th, recv, mid, argc, argv, me);
279 if (arity < 1 || arity > 3) arity = 2;
308 return vm_call0(th, recv, mid, argc, argv, me);
320 #define type_case(t) case t: return #t;
347 default:
return NULL;
361 "method `%s' called on unexpected immediate object (%p)",
364 flags =
RBASIC(recv)->flags;
365 klass =
RBASIC(recv)->klass;
368 "method `%s' called on terminated object"
377 "method `%s' called on hidden %s object"
379 rb_id2name(mid), typestr, (
void *)recv, flags, klass);
382 "method `%s' called on unexpected %s object"
383 " (%p flags=0x%"PRIxVALUE
" klass=0x%"PRIxVALUE
")",
384 rb_id2name(mid), typestr, (
void *)recv, flags, klass);
387 "method `%s' called on broken T_???" "(0x%02x) object"
388 " (%p flags=0x%"PRIxVALUE
" klass=0x%"PRIxVALUE
")",
389 rb_id2name(mid), type, (
void *)recv, flags, klass);
409 if (oid != idMethodMissing) {
418 VALUE defined_class = klass;
421 defined_class =
RBASIC(defined_class)->klass;
460 VALUE obj,
int call_status));
503 #define NOEX_MISSING 0x80
507 int last_call_status)
511 const char *format = 0;
513 if (argc == 0 || !
SYMBOL_P(argv[0])) {
522 format =
"private method `%s' called for %s";
525 format =
"protected method `%s' called for %s";
528 format =
"undefined local variable or method `%s' for %s";
532 format =
"super: no superclass method `%s' for %s";
535 format =
"undefined method `%s' for %s";
573 if (
id == idMethodMissing) {
595 result =
rb_funcall2(obj, idMethodMissing, argc + 1, nargv);
602 VALUE obj,
int call_status)
650 for (i = 0; i < n; i++) {
651 argv[
i] = va_arg(ar,
VALUE);
708 vid = *argv++; argc--;
787 for (i=0; i<n; i++) {
788 argv[
i] = va_arg(args,
VALUE);
874 blockptr->
iseq = (
void *)node;
882 retval = (*it_proc) (data1);
890 if (cdfp == escape_dfp) {
896 while (th->
cfp != cfp) {
898 printf(
"skipped frame: %s\n", vm_frametype_name(th->
cfp));
916 if (cdfp == escape_dfp) {
981 volatile int parse_in_eval;
982 volatile int mild_compile_error;
994 volatile VALUE iseqval;
1000 if (strcmp(file,
"(eval)") == 0 && bind->
filename !=
Qnil) {
1007 "wrong argument type %s (expected Binding)",
1059 if (strcmp(file,
"(eval)") == 0) {
1060 VALUE mesg, errat, bt2;
1115 VALUE src, scope, vfile, vline;
1116 const char *file =
"(eval)";
1119 rb_scan_args(argc, argv,
"13", &src, &scope, &vfile, &vline);
1124 "Insecure: can't modify trusted binding");
1270 const char *file =
"(eval)";
1286 "wrong number of arguments: %s(src) or %s{..}",
1295 return eval_under(klass,
self, argv[0], file, line);
1453 if (tt->
tag == tag) {
1557 th->
cfp = saved_cfp;
1622 if (
NIL_P(method)) {
1623 fprintf(fp,
"\tfrom %s:%d:in unknown method\n",
1627 fprintf(fp,
"\tfrom %s:%d:in `%s'\n",
1705 if (cfp->
lfp != cfp->
dfp) {
1713 while (cfp->
dfp != dfp) {
1755 (cfp->
lfp[0] & 0x02) == 0 &&