Skip to content

Commit d700299

Browse files
committed
Avoid unnecessary pointer params for gmtime/localtime. NFC
Seems like there is no reason to pass a pointer here. I noticed this while investigating #19694.
1 parent eab65a0 commit d700299

File tree

3 files changed

+10
-8
lines changed

3 files changed

+10
-8
lines changed

src/library.js

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -480,8 +480,9 @@ mergeInto(LibraryManager.library, {
480480
},
481481

482482
_gmtime_js__deps: ['$readI53FromI64'],
483-
_gmtime_js: (time, tmPtr) => {
484-
var date = new Date({{{ makeGetValue('time', 0, 'i53') }}}*1000);
483+
_gmtime_js: ({{{ defineI64Param('time') }}}, tmPtr) => {
484+
{{{ receiveI64ParamAsI53('time') }}}
485+
var date = new Date(time*1000);
485486
{{{ makeSetValue('tmPtr', C_STRUCTS.tm.tm_sec, 'date.getUTCSeconds()', 'i32') }}};
486487
{{{ makeSetValue('tmPtr', C_STRUCTS.tm.tm_min, 'date.getUTCMinutes()', 'i32') }}};
487488
{{{ makeSetValue('tmPtr', C_STRUCTS.tm.tm_hour, 'date.getUTCHours()', 'i32') }}};
@@ -513,8 +514,9 @@ mergeInto(LibraryManager.library, {
513514
},
514515

515516
_localtime_js__deps: ['$readI53FromI64', '$ydayFromDate'],
516-
_localtime_js: (time, tmPtr) => {
517-
var date = new Date({{{ makeGetValue('time', 0, 'i53') }}}*1000);
517+
_localtime_js: ({{{ defineI64Param('time') }}}, tmPtr) => {
518+
{{{ receiveI64ParamAsI53('time') }}}
519+
var date = new Date(time*1000);
518520
{{{ makeSetValue('tmPtr', C_STRUCTS.tm.tm_sec, 'date.getSeconds()', 'i32') }}};
519521
{{{ makeSetValue('tmPtr', C_STRUCTS.tm.tm_min, 'date.getMinutes()', 'i32') }}};
520522
{{{ makeSetValue('tmPtr', C_STRUCTS.tm.tm_hour, 'date.getHours()', 'i32') }}};

src/library_sigs.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -351,8 +351,8 @@ sigs = {
351351
_emval_take_value__sig: 'ppp',
352352
_emval_throw__sig: 'ip',
353353
_emval_typeof__sig: 'pp',
354-
_gmtime_js__sig: 'vpp',
355-
_localtime_js__sig: 'vpp',
354+
_gmtime_js__sig: 'vjp',
355+
_localtime_js__sig: 'vjp',
356356
_mktime_js__sig: 'ip',
357357
_mmap_js__sig: 'ipiiijpp',
358358
_msync_js__sig: 'ippiiij',

system/lib/libc/mktime.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,15 +20,15 @@ weak time_t mktime(struct tm *tm) {
2020

2121
weak struct tm *__localtime_r(const time_t *restrict t, struct tm *restrict tm) {
2222
tzset();
23-
_localtime_js(t, tm);
23+
_localtime_js(*t, tm);
2424
// __localtime_js sets everything but the tmzone pointer
2525
tm->__tm_zone = tm->tm_isdst ? tzname[1] :tzname[0];
2626
return tm;
2727
}
2828

2929
weak struct tm *__gmtime_r(const time_t *restrict t, struct tm *restrict tm) {
3030
tzset();
31-
_gmtime_js(t, tm);
31+
_gmtime_js(*t, tm);
3232
tm->tm_isdst = 0;
3333
tm->__tm_gmtoff = 0;
3434
tm->__tm_zone = "GMT";

0 commit comments

Comments
 (0)