summaryrefslogtreecommitdiff
path: root/cpan/ExtUtils-Constant
diff options
context:
space:
mode:
authorNicholas Clark <nick@ccl4.org>2010-09-21 15:11:17 +0100
committerNicholas Clark <nick@ccl4.org>2010-09-21 15:11:17 +0100
commitfb34c6aba9445af559a9ff53b28b5e1e10afa23d (patch)
tree86513c268d8946e65583a41578c89be2c74e0693 /cpan/ExtUtils-Constant
parentad39d6d2ab3fa902fe6e879c0ec6efa61f93ae55 (diff)
downloadperl-fb34c6aba9445af559a9ff53b28b5e1e10afa23d.tar.gz
ExtUtils::Constant::ProxySubs should use mro_method_changed_in() if available.
Diffstat (limited to 'cpan/ExtUtils-Constant')
-rw-r--r--cpan/ExtUtils-Constant/lib/ExtUtils/Constant/ProxySubs.pm11
1 files changed, 10 insertions, 1 deletions
diff --git a/cpan/ExtUtils-Constant/lib/ExtUtils/Constant/ProxySubs.pm b/cpan/ExtUtils-Constant/lib/ExtUtils/Constant/ProxySubs.pm
index e0d5c7b1f2..0005f13430 100644
--- a/cpan/ExtUtils-Constant/lib/ExtUtils/Constant/ProxySubs.pm
+++ b/cpan/ExtUtils-Constant/lib/ExtUtils/Constant/ProxySubs.pm
@@ -503,12 +503,21 @@ EOBOOT
print $xs_fh $self->macro_to_endif($macro);
}
- print $xs_fh <<EOBOOT;
+ if ($] >= 5.009) {
+ print $xs_fh <<EOBOOT;
+ /* As we've been creating subroutines, we better invalidate any cached
+ methods */
+ mro_method_changed_in(symbol_table);
+ }
+EOBOOT
+ } else {
+ print $xs_fh <<EOBOOT;
/* As we've been creating subroutines, we better invalidate any cached
methods */
++PL_sub_generation;
}
EOBOOT
+ }
print $xs_fh $explosives ? <<"EXPLODE" : <<"DONT";