aboutsummaryrefslogtreecommitdiffstats
path: root/variable.c
diff options
context:
space:
mode:
authorS-H-GAMELINKS <gamelinks007@gmail.com>2023-03-11 10:38:42 +0900
committerNobuyoshi Nakada <nobu@ruby-lang.org>2023-03-12 10:08:18 +0900
commit2d0dc376c426a8ea01d36ef2832355b6198e1465 (patch)
tree911cb8fcd4d469eae05c719460017b00a253edd0 /variable.c
parent94da5f7c360b64e12c55fa0be266d9f48e66e937 (diff)
downloadruby-2d0dc376c426a8ea01d36ef2832355b6198e1465.tar.gz
Reuse CVAR_LOOKUP macro
Diffstat (limited to 'variable.c')
-rw-r--r--variable.c38
1 files changed, 14 insertions, 24 deletions
diff --git a/variable.c b/variable.c
index c0b4625e2e..30b786335e 100644
--- a/variable.c
+++ b/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) \
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)
{