From 31e65bfca8620115cbc8bfb130f49c9da8d67a23 Mon Sep 17 00:00:00 2001 From: nobu Date: Thu, 24 Mar 2016 15:01:39 +0000 Subject: strftime.c: refine r54248 * strftime.c (FMT_PRECISION): eliminate side effects. [Bug #12213] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54250 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- strftime.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'strftime.c') diff --git a/strftime.c b/strftime.c index 2f1888d457..42761f0d7c 100644 --- a/strftime.c +++ b/strftime.c @@ -283,11 +283,11 @@ rb_strftime_with_timespec(VALUE ftime, const char *format, size_t format_len, (padding == '0' || (!padding && (def_pad) == '0')) ? \ rb_strlen_lit("%*"fmt)+1 : 0]) #define FMT_PRECISION(def_prec) \ - ((flags & BIT_OF(LEFT)) ? (precision = 1) : \ - (precision <= 0) ? (precision = (def_prec)) : (precision)) + ((flags & BIT_OF(LEFT)) ? (1) : \ + (precision <= 0) ? (def_prec) : (precision)) #define FMT(def_pad, def_prec, fmt, val) \ do { \ - FMT_PRECISION(def_prec); \ + precision = FMT_PRECISION(def_prec); \ len = s - start; \ NEEDS(precision); \ rb_str_set_len(ftime, len); \ @@ -324,7 +324,7 @@ rb_strftime_with_timespec(VALUE ftime, const char *format, size_t format_len, } \ else { \ const char *fmts = FMT_PADDING(fmt, def_pad); \ - FMT_PRECISION(def_prec); \ + precision = FMT_PRECISION(def_prec); \ tmp = format_value(fmts, tmp, precision); \ rb_str_append(ftime, tmp); \ RSTRING_GETMEM(ftime, s, len); \ -- cgit v1.2.3