diff options
-rw-r--r-- | lib/rdoc/parser/c.rb | 1 | ||||
-rw-r--r-- | test/rdoc/test_rdoc_parser_c.rb | 13 |
2 files changed, 14 insertions, 0 deletions
diff --git a/lib/rdoc/parser/c.rb b/lib/rdoc/parser/c.rb index 183538d54b..425ea11f63 100644 --- a/lib/rdoc/parser/c.rb +++ b/lib/rdoc/parser/c.rb @@ -217,6 +217,7 @@ class RDoc::Parser::C < RDoc::Parser def deduplicate_call_seq @methods.each do |var_name, functions| class_name = @known_classes[var_name] + next unless class_name class_obj = find_class var_name, class_name functions.each_value do |method_names| diff --git a/test/rdoc/test_rdoc_parser_c.rb b/test/rdoc/test_rdoc_parser_c.rb index b8bdbca7fd..3d30d767df 100644 --- a/test/rdoc/test_rdoc_parser_c.rb +++ b/test/rdoc/test_rdoc_parser_c.rb @@ -1630,6 +1630,19 @@ Init_IO(void) { assert read_method.singleton end + def test_define_method_dynamically + content = <<-EOF +void +Init_foo(void) +{ + rb_define_singleton_method(obj, "foo", foo, -1); +} + EOF + + klass = util_get_class content, 'obj' + assert_nil klass + end + def test_define_method_with_prototype content = <<-EOF static VALUE rb_io_s_read(int, VALUE*, VALUE); |