Reuse CVAR_LOOKUP macro
This commit is contained in:
parent
94da5f7c36
commit
2d0dc376c4
Notes:
git
2023-03-12 01:08:40 +00:00
38
variable.c
38
variable.c
@ -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) \
|
#define CVAR_FOREACH_ANCESTORS(klass, v, r) \
|
||||||
for (klass = cvar_front_klass(klass); klass; klass = RCLASS_SUPER(klass)) { \
|
for (klass = cvar_front_klass(klass); klass; klass = RCLASS_SUPER(klass)) { \
|
||||||
if (cvar_lookup_at(klass, id, (v))) { \
|
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);\
|
CVAR_FOREACH_ANCESTORS(klass, v, r);\
|
||||||
} while(0)
|
} 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
|
static void
|
||||||
check_for_cvar_table(VALUE subclass, VALUE key)
|
check_for_cvar_table(VALUE subclass, VALUE key)
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user