From 2100826243ae23e159ccdf9c9805a84074261808 Mon Sep 17 00:00:00 2001 From: Satoshi Tagomori Date: Sun, 22 Jun 2025 18:03:57 +0900 Subject: [PATCH] Fix wrong way to check an object is an instance of rb_cNamespace --- internal/namespace.h | 2 +- namespace.c | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/internal/namespace.h b/internal/namespace.h index c68f0987aa..9ffc9a5c8b 100644 --- a/internal/namespace.h +++ b/internal/namespace.h @@ -40,7 +40,7 @@ struct rb_namespace_struct { }; typedef struct rb_namespace_struct rb_namespace_t; -#define NAMESPACE_OBJ_P(obj) (CLASS_OF(obj) == rb_cNamespace) +#define NAMESPACE_OBJ_P(obj) (rb_obj_class(obj) == rb_cNamespace) #define NAMESPACE_ROOT_P(ns) (ns && !ns->is_user) #define NAMESPACE_USER_P(ns) (ns && ns->is_user) diff --git a/namespace.c b/namespace.c index 81017f902b..8d50ba4415 100644 --- a/namespace.c +++ b/namespace.c @@ -877,7 +877,8 @@ rb_initialize_main_namespace(void) namespace_experimental_warned = 1; } - main_ns = rb_class_new_instance_pass_kw(0, NULL, rb_cNamespace); + main_ns = rb_class_new_instance(0, NULL, rb_cNamespace); + VM_ASSERT(NAMESPACE_OBJ_P(main_ns)); ns = rb_get_namespace_t(main_ns); ns->ns_object = main_ns; ns->ns_id = namespace_generate_id();