From 8b9a1153f14d44cea2fcef118be9de0eea3dcaca Mon Sep 17 00:00:00 2001 From: Father Chrysostomos Date: Mon, 9 Jan 2012 19:59:45 -0800 Subject: [PATCH] Document that [ah]v_undef/clear may free the [ah]v --- av.c | 11 ++++++++--- hv.c | 11 +++++++++-- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/av.c b/av.c index 472600b..1114531 100644 --- a/av.c +++ b/av.c @@ -426,8 +426,11 @@ Perl_av_make(pTHX_ register I32 size, register SV **strp) /* =for apidoc av_clear -Clears an array, making it empty. Does not free the memory used by the -array itself. Perl equivalent: C<@myarray = ();>. +Clears an array, making it empty. Does not free the memory the av uses to +store its list of scalars. If any destructors are triggered as a result, +the av itself may be freed when this function returns. + +Perl equivalent: C<@myarray = ();>. =cut */ @@ -488,7 +491,9 @@ Perl_av_clear(pTHX_ register AV *av) /* =for apidoc av_undef -Undefines the array. Frees the memory used by the array itself. +Undefines the array. Frees the memory used by the av to store its list of +scalars. If any destructors are triggered as a result, the av itself may +be freed. =cut */ diff --git a/hv.c b/hv.c index 2cfe25b..baeeae7 100644 --- a/hv.c +++ b/hv.c @@ -1546,7 +1546,10 @@ Perl_hv_delayfree_ent(pTHX_ HV *hv, register HE *entry) =for apidoc hv_clear Frees the all the elements of a hash, leaving it empty. -The XS equivalent of %hash = (). See also L. +The XS equivalent of C<%hash = ()>. See also L. + +If any destructors are triggered as a result, the hv itself may +be freed. =cut */ @@ -1768,10 +1771,14 @@ Perl_hfree_next_entry(pTHX_ HV *hv, STRLEN *indexp) /* =for apidoc hv_undef -Undefines the hash. The XS equivalent of undef(%hash). +Undefines the hash. The XS equivalent of C. As well as freeing all the elements of the hash (like hv_clear()), this also frees any auxiliary data and storage associated with the hash. + +If any destructors are triggered as a result, the hv itself may +be freed. + See also L. =cut -- 2.7.4