diff options
author | Nicholas Clark <nick@ccl4.org> | 2006-04-19 08:42:18 +0000 |
---|---|---|
committer | Nicholas Clark <nick@ccl4.org> | 2006-04-19 08:42:18 +0000 |
commit | cbf82dd00c19573e7e274a1d8dda9656bc6e259a (patch) | |
tree | 85a421e839c6a91506d7a9f972bf553b2cf43845 /embed.fnc | |
parent | 39cd7a593a348b713bd3e45241789bcc2a458c1a (diff) | |
download | perl-cbf82dd00c19573e7e274a1d8dda9656bc6e259a.tar.gz |
Calling cv_undef() on the CV created by newCONSTSUB() would leak like
a Jumblie's preferred maritime craft. To free CvFILE for this case,
take advantage of the 0 length prototype that will also be there,
and hang it from the prototype. To do this properly means changing
code to actually pay attention to SvCUR() on prototypes. It turns out
that we always know the length of the prototype string, so this may
be faster. Certainly, it's a memory saving (even ignoring the leak).
p4raw-id: //depot/perl@27896
Diffstat (limited to 'embed.fnc')
-rw-r--r-- | embed.fnc | 5 |
1 files changed, 4 insertions, 1 deletions
@@ -150,7 +150,10 @@ Afnp |void |sv_setpvf_mg_nocontext|NN SV* sv|NN const char* pat|... Afnp |int |fprintf_nocontext|NN PerlIO* stream|NN const char* fmt|... Afnp |int |printf_nocontext|NN const char* fmt|... #endif -p |void |cv_ckproto |NN const CV* cv|NULLOK const GV* gv|NULLOK const char* p +bp |void |cv_ckproto |NN const CV* cv|NULLOK const GV* gv\ + |NULLOK const char* p +p |void |cv_ckproto_len |NN const CV* cv|NULLOK const GV* gv\ + |NULLOK const char* p|const STRLEN len pd |CV* |cv_clone |NN CV* proto ApdR |SV* |gv_const_sv |NN GV* gv ApdR |SV* |cv_const_sv |NULLOK CV* cv |