mro::method_changed_in(..) ignores AUTOLOAD (RT #60220)
authorTony Cook <tony@develop-help.com>
Sat, 18 Jul 2009 19:49:04 +0000 (14:49 -0500)
committerCraig A. Berry <craigberry@mac.com>
Sat, 18 Jul 2009 22:16:31 +0000 (17:16 -0500)
commit26d68d86a346a9cd3eddb7ee18bfaa50db17b7f0
tree44dc8fb4598766ec9f1f67b8a1fecef4242bf54b
parentce4f4fe21306fe15b2fbafac14eb81691d0b304a
mro::method_changed_in(..) ignores AUTOLOAD (RT #60220)

Patch modified to use a boolean rather than an integer for tracking
mro changes in S_glob_assign_ref and test fixed not to warn.

URL: http://rt.perl.org/rt3/Ticket/Display.html?id=60220

From the bug report:

-----------------------------------------------------------------
When creating a subclass dynamically, and when adding
AUTOLOAD dynamically into the parent class, then that
AUTOLOAD is not seen in the method cache, even after
a call to "mro::method_changed_in('Parent')".

It only appears in the method cache after a call
to mro::invalidate_all_method_caches().

The attached test file demonstrates the problem.

This was detected while trying to solve bug 40159 in DBIx::DataModel.
-----------------------------------------------------------------

Message-ID: <20081031132021.GA21341@mars.tony.develop-help.com>
sv.c
t/mro/basic.t