22 #define numberof(array) (int)(sizeof(array) / sizeof((array)[0]))
29 #define exception_error GET_VM()->special_exceptions[ruby_error_reenter]
39 static int initialized = 0;
68 void *
volatile iseq = 0;
115 volatile VALUE errs[2];
154 #if EXIT_SUCCESS != 0 || EXIT_FAILURE != 1
156 #if EXIT_SUCCESS != 0
159 #if EXIT_FAILURE != 1
166 for (nerr = 0; nerr <
numberof(errs); ++nerr) {
169 if (!
RTEST(err))
continue;
232 if (status) *status = s;
275 while (cref && cref->nd_next) {
276 VALUE klass = cref->nd_clss;
281 cref = cref->nd_next;
321 klass = cref->nd_clss;
329 cref = cref->nd_next;
341 const char *desc =
"something(?!)";
347 switch (
TYPE(klass)) {
369 volatile int line = 0;
381 if (file && !
NIL_P(mesg)) {
608 if ((th->
cfp->
lfp[0] & 0x02) == 0 &&
647 result = (*b_proc) (data1);
657 while ((eclass = va_arg(args,
VALUE)) != 0) {
669 result = (*r_proc) (data2, th->
errinfo);
744 result = (*b_proc) (data1);
762 while (cfp_limit > cfp) {
763 if (cfp->
iseq == iseq)
781 if (ifunc->nd_aid)
return ifunc->nd_aid;
846 switch (
TYPE(include)) {
871 for (i = 0; i <
argc; i++)
960 for (i = 0; i <
argc; i++)
986 (
"main#include in the wrapped load is effective only in wrapper module");
1000 if (cfp->
iseq->
type == ISEQ_TYPE_RESCUE) {
1001 return &cfp->
dfp[-2];
1003 else if (cfp->
iseq->
type == ISEQ_TYPE_ENSURE &&
1006 return &cfp->
dfp[-2];