From 47bf35fab2e1eb0d7c70b8443f83839a53f93fef Mon Sep 17 00:00:00 2001 From: Nicholas Clark Date: Sun, 24 Oct 2010 12:26:43 +0200 Subject: [PATCH] In cstring() in B.xs, use Perl_sv_catpvf(), instead of a temporary buffer. --- ext/B/B.xs | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/ext/B/B.xs b/ext/B/B.xs index 004b5eb..769336a 100644 --- a/ext/B/B.xs +++ b/ext/B/B.xs @@ -377,9 +377,7 @@ cstring(pTHX_ SV *sv, bool perlstyle) sv_catpvs(sstr, "\\\\"); /* trigraphs - bleagh */ else if (!perlstyle && *s == '?' && len>=3 && s[1] == '?') { - char escbuff[5]; /* to fit backslash, 3 octals + trailing \0 */ - const STRLEN oct_len = my_sprintf(escbuff, "\\%03o", '?'); - sv_catpvn(sstr, escbuff, oct_len); + Perl_sv_catpvf(aTHX_ sstr, "\\%03o", '?'); } else if (perlstyle && *s == '$') sv_catpvs(sstr, "\\$"); @@ -408,10 +406,8 @@ cstring(pTHX_ SV *sv, bool perlstyle) else { /* Don't want promotion of a signed -1 char in sprintf args */ - char escbuff[5]; /* to fit backslash, 3 octals + trailing \0 */ const unsigned char c = (unsigned char) *s; - const STRLEN oct_len = my_sprintf(escbuff, "\\%03o", c); - sv_catpvn(sstr, escbuff, oct_len); + Perl_sv_catpvf(aTHX_ sstr, "\\%03o", c); } /* XXX Add line breaks if string is long */ } -- 1.8.3.1