summaryrefslogtreecommitdiff
path: root/embed.h
diff options
context:
space:
mode:
authorFather Chrysostomos <sprout@cpan.org>2010-10-12 10:13:58 -0700
committerFather Chrysostomos <sprout@cpan.org>2010-10-12 12:52:12 -0700
commitd056e33c1ea02abb0c031adb18b181624282ba3c (patch)
treebe509216d46bd9a97ddb6013ce278f4f104d5f68 /embed.h
parent11f9f0eda0026b9120e2ceb1b15c72667d1c91ac (diff)
downloadperl-d056e33c1ea02abb0c031adb18b181624282ba3c.tar.gz
Reset isa caches on nonexistent substashes when stash trees are moved
This fixes the problem of isa cache linearisations’ and method caches’ not being reset on nonexistent packages when they are replaced with real packages as a result of parent stashes’ being moved. This can happen in cases like this: @left::ISA = 'outer::inner'; @right::ISA = 'clone::inner'; {package outer::inner} *clone:: = \%outer::; print "ok 1", "\n" if left->isa("clone::inner"); print "ok 2", "\n" if right->isa("outer::inner"); This changes mro_package_moved’s parameter list as documented in the diff for mro.c. See also the new comments in that function.
Diffstat (limited to 'embed.h')
-rw-r--r--embed.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/embed.h b/embed.h
index 6d15195c44..7e187bd437 100644
--- a/embed.h
+++ b/embed.h
@@ -1050,7 +1050,7 @@
#define mg_localize(a,b,c) Perl_mg_localize(aTHX_ a,b,c)
#define mode_from_discipline(a,b) Perl_mode_from_discipline(aTHX_ a,b)
#define mro_isa_changed_in3(a,b,c) Perl_mro_isa_changed_in3(aTHX_ a,b,c)
-#define mro_package_moved(a) Perl_mro_package_moved(aTHX_ a)
+#define mro_package_moved(a,b,c,d,e) Perl_mro_package_moved(aTHX_ a,b,c,d,e)
#define munge_qwlist_to_paren_list(a) Perl_munge_qwlist_to_paren_list(aTHX_ a)
#define my_attrs(a,b) Perl_my_attrs(aTHX_ a,b)
#define my_clearenv() Perl_my_clearenv(aTHX)