summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorNicholas Clark <nick@ccl4.org>2006-02-20 11:54:03 +0000
committerNicholas Clark <nick@ccl4.org>2006-02-20 11:54:03 +0000
commitaa092aa30938df861825e5192a09d0567bdac529 (patch)
tree006b5eab3b8e8912aaa013bd8509f31b63324731 /lib
parentaed2304a0354e5cd0ca22ed008e1922f54b0f438 (diff)
downloadperl-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.pm4
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,