diff options
author | Nicholas Clark <nick@ccl4.org> | 2006-05-19 21:44:14 +0000 |
---|---|---|
committer | Nicholas Clark <nick@ccl4.org> | 2006-05-19 21:44:14 +0000 |
commit | ec2a1de722601129850327b38324ac227c58147a (patch) | |
tree | 878e2d1ea608110670452f49b076da5b00a58cc6 | |
parent | d2317f5992d5f2c94bab7f9255eb080a8a677efb (diff) | |
download | perl-ec2a1de722601129850327b38324ac227c58147a.tar.gz |
Correct Perl_refcounted_he_chain_2hv() and its caller - it doesn't
store a reference to the value, so don't pass it in a new SV.
p4raw-id: //depot/perl@28245
-rw-r--r-- | hv.c | 7 | ||||
-rw-r--r-- | mg.c | 2 | ||||
-rw-r--r-- | pod/perlintern.pod | 7 |
3 files changed, 7 insertions, 9 deletions
@@ -2674,10 +2674,9 @@ Perl_refcounted_he_chain_2hv(pTHX_ const struct refcounted_he *chain) /* =for apidoc refcounted_he_new -Creates a new C<struct refcounted_he>. Assumes ownership of one reference -to I<value>. As S<key> is copied into a shared hash key, all references remain -the property of the caller. The C<struct refcounted_he> is returned with a -reference count of 1. +Creates a new C<struct refcounted_he>. As S<key> is copied, and value is +stored in a compact form, all references remain the property of the caller. +The C<struct refcounted_he> is returned with a reference count of 1. =cut */ @@ -2877,7 +2877,7 @@ Perl_magic_sethint(pTHX_ SV *sv, MAGIC *mg) PL_hints |= HINT_LOCALIZE_HH; PL_compiling.cop_hints = Perl_refcounted_he_new(aTHX_ PL_compiling.cop_hints, - (SV *)mg->mg_ptr, newSVsv(sv)); + (SV *)mg->mg_ptr, sv); return 0; } diff --git a/pod/perlintern.pod b/pod/perlintern.pod index 7fc71149d5..b79d54e874 100644 --- a/pod/perlintern.pod +++ b/pod/perlintern.pod @@ -500,10 +500,9 @@ Found in file hv.c =item refcounted_he_new X<refcounted_he_new> -Creates a new C<struct refcounted_he>. Assumes ownership of one reference -to I<value>. As S<key> is copied into a shared hash key, all references remain -the property of the caller. The C<struct refcounted_he> is returned with a -reference count of 1. +Creates a new C<struct refcounted_he>. As S<key> is copied, and value is +stored in a compact form, all references remain the property of the caller. +The C<struct refcounted_he> is returned with a reference count of 1. struct refcounted_he * refcounted_he_new(struct refcounted_he *const parent, SV *const key, SV *const value) |