1
0
Fork 0
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:
nobu 2014-05-02 01:34:44 +00:00
parent a80b300416
commit 38fd0dc668
2 changed files with 15 additions and 0 deletions

View file

@ -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")

View file

@ -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
}