diff options
| author | Yukihiro Matsumoto <[email protected]> | 2012-06-23 13:51:50 +0900 |
|---|---|---|
| committer | Yukihiro Matsumoto <[email protected]> | 2012-06-23 13:51:50 +0900 |
| commit | f045e646751bfe0f399aae59746befa6384b96aa (patch) | |
| tree | f14b8e5b4525fbba488a7e1120a61d48b155da2d /src/time.c | |
| parent | 1fa63930fd072847d24ffe9c20a57109c41387ec (diff) | |
| download | mruby-f045e646751bfe0f399aae59746befa6384b96aa.tar.gz mruby-f045e646751bfe0f399aae59746befa6384b96aa.zip | |
reduce calling mrb_str_new_cstr() to avoid strlen(); #301
Diffstat (limited to 'src/time.c')
| -rw-r--r-- | src/time.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/src/time.c b/src/time.c index 55060729b..28cc3c1a3 100644 --- a/src/time.c +++ b/src/time.c @@ -430,16 +430,17 @@ mrb_time_asctime(mrb_state *mrb, mrb_value self) struct mrb_time *tm; struct tm *d; char buf[256]; + int len; tm = mrb_get_datatype(mrb, self, &mrb_time_type); if (!tm) return mrb_nil_value(); d = &tm->datetime; - snprintf(buf, 256, "%s %s %02d %02d:%02d:%02d %s%d", - wday_names[d->tm_wday], mon_names[d->tm_mon], d->tm_mday, - d->tm_hour, d->tm_min, d->tm_sec, - tm->timezone == MRB_TIMEZONE_UTC ? "UTC " : "", - d->tm_year + 1900); - return mrb_str_new_cstr(mrb, buf); + len = snprintf(buf, 256, "%s %s %02d %02d:%02d:%02d %s%d", + wday_names[d->tm_wday], mon_names[d->tm_mon], d->tm_mday, + d->tm_hour, d->tm_min, d->tm_sec, + tm->timezone == MRB_TIMEZONE_UTC ? "UTC " : "", + d->tm_year + 1900); + return mrb_str_new(mrb, buf, len); } /* 15.2.19.7.6 */ |
