зеркало из https://github.com/github/ruby.git
strftime.c: remove recursive-assignments
* strftime.c (FMT, FMTV): remove recursive-assignments to get rid of undefined behavior. [ruby-core:74532] [Bug #12213] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54248 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
Родитель
743f2bf879
Коммит
20215f0181
10
ChangeLog
10
ChangeLog
|
@ -1,3 +1,13 @@
|
|||
Thu Mar 24 22:38:18 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||
|
||||
* strftime.c (FMT, FMTV): remove recursive-assignments to get rid
|
||||
of undefined behavior. [ruby-core:74532] [Bug #12213]
|
||||
|
||||
Thu Mar 24 22:38:05 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||
|
||||
* strftime.c (FMT, FMTV): remove recursive-assignments to get rid
|
||||
of undefined behavior. [ruby-core:74532] [Bug #12213]
|
||||
|
||||
Thu Mar 24 17:44:02 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||
|
||||
* strftime.c (FMT_PADDING): extract format for padding.
|
||||
|
|
|
@ -287,7 +287,7 @@ rb_strftime_with_timespec(VALUE ftime, const char *format, size_t format_len,
|
|||
(precision <= 0) ? (precision = (def_prec)) : (precision))
|
||||
#define FMT(def_pad, def_prec, fmt, val) \
|
||||
do { \
|
||||
precision = FMT_PRECISION(def_prec); \
|
||||
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); \
|
||||
precision = FMT_PRECISION(def_prec); \
|
||||
FMT_PRECISION(def_prec); \
|
||||
tmp = format_value(fmts, tmp, precision); \
|
||||
rb_str_append(ftime, tmp); \
|
||||
RSTRING_GETMEM(ftime, s, len); \
|
||||
|
|
Загрузка…
Ссылка в новой задаче