diff options
author | Nicholas Clark <nick@ccl4.org> | 2006-02-20 11:54:03 +0000 |
---|---|---|
committer | Nicholas Clark <nick@ccl4.org> | 2006-02-20 11:54:03 +0000 |
commit | aa092aa30938df861825e5192a09d0567bdac529 (patch) | |
tree | 006b5eab3b8e8912aaa013bd8509f31b63324731 /lib | |
parent | aed2304a0354e5cd0ca22ed008e1922f54b0f438 (diff) | |
download | perl-aa092aa30938df861825e5192a09d0567bdac529.tar.gz |
Need to clear CvXSUBANY() too to turn a constant sub into a prototype.
p4raw-id: //depot/perl@27242
Diffstat (limited to 'lib')
-rw-r--r-- | lib/ExtUtils/Constant/ProxySubs.pm | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/ExtUtils/Constant/ProxySubs.pm b/lib/ExtUtils/Constant/ProxySubs.pm index d9c9ac3c3a..a358a6678b 100644 --- a/lib/ExtUtils/Constant/ProxySubs.pm +++ b/lib/ExtUtils/Constant/ProxySubs.pm @@ -9,7 +9,7 @@ require ExtUtils::Constant::XS; use ExtUtils::Constant::Utils qw(C_stringify); use ExtUtils::Constant::XS qw(%XS_TypeSet); -$VERSION = '0.01'; +$VERSION = '0.02'; @ISA = 'ExtUtils::Constant::XS'; %type_to_struct = @@ -367,8 +367,10 @@ EXPLODE CV *cv = newCONSTSUB(symbol_table, value_for_notfound->name, &PL_sv_yes); /* and then turn it into a non constant declaration only. */ + SvREFCNT_dec(CvXSUBANY(cv).any_ptr); CvCONST_off(cv); CvXSUB(cv) = NULL; + CvXSUBANY(cv).any_ptr = NULL; } if (!hv_store(${c_subname}_missing, value_for_notfound->name, |