Delete useless Namespace#current_details
The implementation of Namespace#current_details shows warning about use of snprintf directive arguments (only in gcc environments?). This method will be useless when the current namespace management will be updated.
This commit is contained in:
parent
20cf46039a
commit
dd4e39a115
Notes:
git
2025-06-07 09:20:11 +00:00
104
namespace.c
104
namespace.c
@ -280,109 +280,6 @@ rb_definition_namespace(void)
|
||||
return ns;
|
||||
}
|
||||
|
||||
VALUE
|
||||
rb_current_namespace_details(VALUE opt)
|
||||
{
|
||||
const rb_callable_method_entry_t *cme;
|
||||
VALUE str, part, nsobj;
|
||||
char buf[2048];
|
||||
const char *path;
|
||||
int calling = 1;
|
||||
long i;
|
||||
rb_execution_context_t *ec = GET_EC();
|
||||
rb_control_frame_t *cfp = ec->cfp;
|
||||
rb_thread_t *th = rb_ec_thread_ptr(ec);
|
||||
const rb_namespace_t *ns = rb_current_namespace();
|
||||
rb_vm_t *vm = GET_VM();
|
||||
VALUE require_stack = vm->require_stack;
|
||||
|
||||
str = rb_namespace_inspect(ns ? ns->ns_object : Qfalse);
|
||||
if (NIL_P(opt)) return str;
|
||||
|
||||
rb_str_cat_cstr(str, "\n");
|
||||
|
||||
part = rb_namespace_inspect(th->ns ? th->ns->ns_object : Qfalse);
|
||||
snprintf(buf, 2048, "main:%s, th->ns:%s, th->nss:%ld, rstack:%ld\n",
|
||||
main_namespace ? "t" : "f",
|
||||
RSTRING_PTR(part),
|
||||
th->namespaces ? RARRAY_LEN(th->namespaces) : 0,
|
||||
require_stack ? RARRAY_LEN(require_stack) : 0);
|
||||
RB_GC_GUARD(part);
|
||||
rb_str_cat_cstr(str, buf);
|
||||
|
||||
if (th->namespaces && RARRAY_LEN(th->namespaces) > 0) {
|
||||
for (i=0; i<RARRAY_LEN(th->namespaces); i++) {
|
||||
nsobj = RARRAY_AREF(th->namespaces, i);
|
||||
part = rb_namespace_inspect(nsobj);
|
||||
snprintf(buf, 2048, " th->nss[%ld] %s\n", i, RSTRING_PTR(part));
|
||||
RB_GC_GUARD(part);
|
||||
rb_str_cat_cstr(str, buf);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
rb_str_cat_cstr(str, "calls:\n");
|
||||
|
||||
while (calling && cfp) {
|
||||
const rb_namespace_t *proc_ns;
|
||||
VALUE bh;
|
||||
if (VM_FRAME_NS_SWITCH_P(cfp)) {
|
||||
bh = rb_vm_frame_block_handler(cfp);
|
||||
if (bh && vm_block_handler_type(bh) == block_handler_type_proc) {
|
||||
proc_ns = block_proc_namespace(VM_BH_TO_PROC(bh));
|
||||
if (NAMESPACE_USER_P(ns)) {
|
||||
part = rb_namespace_inspect(proc_ns->ns_object);
|
||||
snprintf(buf, 2048, " cfp->ns:%s", RSTRING_PTR(part));
|
||||
RB_GC_GUARD(part);
|
||||
calling = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
cme = rb_vm_frame_method_entry(cfp);
|
||||
if (cme && cme->def) {
|
||||
if (cme->def->type == VM_METHOD_TYPE_ISEQ)
|
||||
path = RSTRING_PTR(pathobj_path(cme->def->body.iseq.iseqptr->body->location.pathobj));
|
||||
else
|
||||
path = "(cfunc)";
|
||||
ns = cme->def->ns;
|
||||
if (ns) {
|
||||
part = rb_namespace_inspect(ns->ns_object);
|
||||
if (!namespace_ignore_builtin_primitive_methods_p(ns, cme->def)) {
|
||||
snprintf(buf, 2048, " cfp cme->def id:%s, ns:%s, exprim:t, path:%s\n",
|
||||
rb_id2name(cme->def->original_id),
|
||||
RSTRING_PTR(part),
|
||||
path);
|
||||
RB_GC_GUARD(part);
|
||||
rb_str_cat_cstr(str, buf);
|
||||
calling = 0;
|
||||
break;
|
||||
}
|
||||
else {
|
||||
snprintf(buf, 2048, " cfp cme->def id:%s, ns:%s, exprim:f, path:%s\n",
|
||||
rb_id2name(cme->def->original_id),
|
||||
RSTRING_PTR(part),
|
||||
path);
|
||||
RB_GC_GUARD(part);
|
||||
rb_str_cat_cstr(str, buf);
|
||||
}
|
||||
}
|
||||
else {
|
||||
snprintf(buf, 2048, " cfp cme->def id:%s, ns:null, path:%s\n",
|
||||
rb_id2name(cme->def->original_id),
|
||||
path);
|
||||
rb_str_cat_cstr(str, buf);
|
||||
}
|
||||
cfp = RUBY_VM_PREVIOUS_CONTROL_FRAME(cfp);
|
||||
}
|
||||
else {
|
||||
calling = 0;
|
||||
}
|
||||
}
|
||||
rb_str_cat_cstr(str, ".\n");
|
||||
return str;
|
||||
}
|
||||
|
||||
static long namespace_id_counter = 0;
|
||||
|
||||
static long
|
||||
@ -1161,7 +1058,6 @@ Init_Namespace(void)
|
||||
|
||||
rb_define_singleton_method(rb_cNamespace, "enabled?", rb_namespace_s_getenabled, 0);
|
||||
rb_define_singleton_method(rb_cNamespace, "current", rb_namespace_current, 0);
|
||||
rb_define_singleton_method(rb_cNamespace, "current_details", rb_current_namespace_details, 0);
|
||||
rb_define_singleton_method(rb_cNamespace, "is_builtin?", rb_namespace_s_is_builtin_p, 1);
|
||||
|
||||
rb_define_method(rb_cNamespace, "load_path", rb_namespace_load_path, 0);
|
||||
|
Loading…
x
Reference in New Issue
Block a user