Skip to content

Commit 98e3466

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 98e3466

File tree

4 files changed

+14
-12
lines changed

4 files changed

+14
-12
lines changed

src/library.js

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -479,9 +479,10 @@ mergeInto(LibraryManager.library, {
479479
return (date.getTime() / 1000)|0;
480480
},
481481

482-
_gmtime_js__deps: ['$readI53FromI64'],
483-
_gmtime_js: (time, tmPtr) => {
484-
var date = new Date({{{ makeGetValue('time', 0, 'i53') }}}*1000);
482+
_gmtime_js__deps: ['$readI53FromI64'].concat(i53ConversionDeps),
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') }}};
@@ -512,9 +513,10 @@ mergeInto(LibraryManager.library, {
512513
return (date.getTime() / 1000)|0;
513514
},
514515

515-
_localtime_js__deps: ['$readI53FromI64', '$ydayFromDate'],
516-
_localtime_js: (time, tmPtr) => {
517-
var date = new Date({{{ makeGetValue('time', 0, 'i53') }}}*1000);
516+
_localtime_js__deps: ['$readI53FromI64', '$ydayFromDate'].concat(i53ConversionDeps),
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/emscripten_internal.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,8 @@ void emscripten_notify_memory_growth(size_t memory_index);
4141
// TODO(sbc): Covert back to `time_t` before 2038 ...
4242
int _timegm_js(struct tm* tm);
4343
int _mktime_js(struct tm* tm);
44-
void _localtime_js(const time_t* __restrict__ t, struct tm* __restrict__ tm);
45-
void _gmtime_js(const time_t* __restrict__ t, struct tm* __restrict__ tm);
44+
void _localtime_js(time_t t, struct tm* __restrict__ tm);
45+
void _gmtime_js(time_t t, struct tm* __restrict__ tm);
4646

4747
void _tzset_js(long* timezone, int* daylight, char** tzname);
4848

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)