Reuse CVAR_LOOKUP macro

This commit is contained in:
S-H-GAMELINKS 2023-03-11 10:38:42 +09:00 committed by Nobuyoshi Nakada
parent 94da5f7c36
commit 2d0dc376c4
Notes: git 2023-03-12 01:08:40 +00:00

View File

@ -3624,30 +3624,6 @@ cvar_overtaken(VALUE front, VALUE target, ID id)
}
}
static VALUE
find_cvar(VALUE klass, VALUE * front, VALUE * target, ID id)
{
VALUE v = Qundef;
CVAR_ACCESSOR_SHOULD_BE_MAIN_RACTOR();
if (cvar_lookup_at(klass, id, (&v))) {
if (!*front) {
*front = klass;
}
*target = klass;
}
for (klass = cvar_front_klass(klass); klass; klass = RCLASS_SUPER(klass)) {
if (cvar_lookup_at(klass, id, (&v))) {
if (!*front) {
*front = klass;
}
*target = klass;
}
}
return v;
}
#define CVAR_FOREACH_ANCESTORS(klass, v, r) \
for (klass = cvar_front_klass(klass); klass; klass = RCLASS_SUPER(klass)) { \
if (cvar_lookup_at(klass, id, (v))) { \
@ -3661,6 +3637,20 @@ find_cvar(VALUE klass, VALUE * front, VALUE * target, ID id)
CVAR_FOREACH_ANCESTORS(klass, v, r);\
} while(0)
static VALUE
find_cvar(VALUE klass, VALUE * front, VALUE * target, ID id)
{
VALUE v = Qundef;
CVAR_LOOKUP(&v, {
if (!*front) {
*front = klass;
}
*target = klass;
});
return v;
}
static void
check_for_cvar_table(VALUE subclass, VALUE key)
{