develooper Front page | perl.perl5.porters | Postings from January 2017

[PATCH] Documentation patch to recommend newSVpvn over newSVpv.

Thread Next
Colin Newell
January 5, 2017 14:06
[PATCH] Documentation patch to recommend newSVpvn over newSVpv.
Message ID:
 sv.c | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/sv.c b/sv.c
index 83d82fc..bb158bf 100644
--- a/sv.c
+++ b/sv.c
@@ -9323,7 +9323,16 @@ SV is set to 1.  If C<len> is zero, Perl will
compute the length using
 C<strlen()>, (which means if you use this option, that C<s> can't have embedded
 C<NUL> characters and has to have a terminating C<NUL> byte).

-For efficiency, consider using C<newSVpvn> instead.
+This function can cause reliability issues if you are likely to pass in
+empty strings that are not null terminated because it will run
+strlen on the string and potentially run past valid memory.
+Using C<newSVpvn> is safer and more efficient regardless of the type
+of string passed in.
+Safer for non C<NUL> terminated strings, and more efficient for both
+strings as it will not have to make an additional comparison to determine
+whether or not to run strlen.


Thread Next Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at | Group listing | About