Project

General

Profile

« Previous | Next » 

Revision 3f7c0e9f

Added by ko1 (Koichi Sasada) over 9 years ago

  • method.h: introduce the folliwing field and macros.

    • rb_method_definition_t::complemented_count to count shared method
      entries because of complemented method entries and separate from
      alias_count.

      Shared `def' only by complemented method entries should not prevent
      method re-definition warning.

    • METHOD_ENTRY_COMPLEMENTED(me) to represent complemented method entry.

    • METHOD_ENTRY_COMPLEMENTED_SET(me) to check it as complemented me.

  • vm_insnhelper.c (aliased_callable_method_entry): should also
    check me->def->complemented_count.

  • vm_method.c (method_definition_addref_complement): add to count
    complemented method entries number.

  • vm_method.c (rb_method_definition_release): release `def' iff
    alias_count == 0 and complemented_count == 0.

  • test/ruby/test_module.rb: add a test.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52636 b2dd03c8-39d4-4d8f-98ff-823fe69b080e