183 if (clone == orig)
return clone;
279 #define METACLASS_OF(k) RBASIC(k)->klass
286 #define META_CLASS_OF_CLASS_CLASS_P(k) (METACLASS_OF(k) == (k))
296 #define ENSURE_EIGENCLASS(klass) \
297 (rb_ivar_get(METACLASS_OF(klass), id_attached) == (klass) ? METACLASS_OF(klass) : make_metaclass(klass))
448 return rb_funcall(super, inherited, 1, klass);
486 rb_warn(
"no super class for `%s', Object assumed", name);
553 rb_warn(
"no super class for `%s::%s', Object assumed",
638 module =
RBASIC(module)->klass;
654 RBASIC(klass)->klass = module;
680 int superclass_seen =
FALSE;
689 if (!superclass_seen) {
696 superclass_seen =
TRUE;
809 #define VISI(x) ((x)&NOEX_MASK)
810 #define VISI_CHECK(x,f) (VISI(x) == (f))
821 visi = (type == visi);
1241 #define SPECIAL_SINGLETON(x,c) do {\
1269 rb_bug(
"unknown immediate %p", (
void *)obj);
1274 klass =
RBASIC(obj)->klass;
1419 const char *
p = fmt;
1422 int f_var = 0, f_hash = 0, f_block = 0;
1423 int n_lead = 0, n_opt = 0, n_trail = 0, n_mand;
1458 rb_fatal(
"bad scan arg format: %s", fmt);
1460 n_mand = n_lead + n_trail;
1465 va_start(vargs, fmt);
1468 if (f_hash && n_mand < argc) {
1475 if (!f_var && n_mand + n_opt < argc)
1485 for (i = n_lead; i-- > 0; ) {
1486 var = va_arg(vargs,
VALUE *);
1487 if (var) *var = argv[argi];
1491 for (i = n_opt; i-- > 0; ) {
1492 var = va_arg(vargs,
VALUE *);
1493 if (argi < argc - n_trail) {
1494 if (var) *var = argv[argi];
1498 if (var) *var =
Qnil;
1503 int n_var = argc - argi - n_trail;
1505 var = va_arg(vargs,
VALUE *);
1515 for (i = n_trail; i-- > 0; ) {
1516 var = va_arg(vargs,
VALUE *);
1517 if (var) *var = argv[argi];
1522 var = va_arg(vargs,
VALUE *);
1523 if (var) *var =
hash;
1527 var = va_arg(vargs,
VALUE *);
1545 argc, n_mand, n_mand + n_opt, f_var ?
"+" :
"");
1548 argc, n_mand, f_var ?
"+" :
"");