mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
symbol/type.c: bug_pindown
* ext/-test-/symbol/type.c (bug_pindown): method for debug, which pins down the given symbol. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45780 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
a80b300416
commit
38fd0dc668
2 changed files with 15 additions and 0 deletions
|
@ -3,4 +3,5 @@ inits = $srcs.map {|s| File.basename(s, ".*")}
|
|||
inits.delete("init")
|
||||
inits.map! {|s|"X(#{s})"}
|
||||
$defs << "-DTEST_INIT_FUNCS(X)=\"#{inits.join(' ')}\""
|
||||
have_func("rb_pin_dynamic_symbol")
|
||||
create_makefile("-test-/symbol")
|
||||
|
|
|
@ -53,6 +53,17 @@ bug_dynamic_p(VALUE self, VALUE sym)
|
|||
return DYNAMIC_SYM_P(sym) ? Qtrue : Qfalse;
|
||||
}
|
||||
|
||||
#ifdef HAVE_RB_PIN_DYNAMIC_SYMBOL
|
||||
ID rb_pin_dynamic_symbol(VALUE);
|
||||
|
||||
static VALUE
|
||||
bug_pindown(VALUE self, VALUE sym)
|
||||
{
|
||||
rb_pin_dynamic_symbol(sym);
|
||||
return sym;
|
||||
}
|
||||
#endif
|
||||
|
||||
void
|
||||
Init_type(VALUE klass)
|
||||
{
|
||||
|
@ -61,4 +72,7 @@ Init_type(VALUE klass)
|
|||
rb_define_singleton_method(klass, "id2str", bug_id2str, 1);
|
||||
rb_define_singleton_method(klass, "static?", bug_static_p, 1);
|
||||
rb_define_singleton_method(klass, "dynamic?", bug_dynamic_p, 1);
|
||||
#ifdef HAVE_RB_PIN_DYNAMIC_SYMBOL
|
||||
rb_define_singleton_method(klass, "pindown", bug_pindown, 1);
|
||||
#endif
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue