Skip to content

Commit 8492f02

Browse files
committed
additional fix for #204
1 parent 71a9438 commit 8492f02

4 files changed

Lines changed: 12 additions & 10 deletions

File tree

.github/workflows/main.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ env:
4040

4141
jobs:
4242
build:
43-
timeout-minutes: 15
43+
timeout-minutes: 20
4444
name: Build
4545
runs-on: ubuntu-latest
4646
env:

packages/emnapi/src/core/async-work.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -359,6 +359,7 @@ export var napi_create_async_work = singleThreadAsyncWork
359359
const resourceName = String(emnapiCtx.jsValueFromNapiValue(resource_name)!)
360360

361361
const id = emnapiAWST.create(env, resourceObject, resourceName, execute, complete, data)
362+
from64('result')
362363
makeSetValue('result', 0, 'id', '*')
363364
return envObject.clearLastError()
364365
}

packages/emnapi/src/emscripten/async-work.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { makeSetValue } from 'emscripten:parse-tools'
1+
import { from64, makeSetValue } from 'emscripten:parse-tools'
22
import { emnapiAWST } from '../async-work'
33
import { $CHECK_ARG, $CHECK_ENV, $CHECK_ENV_NOT_IN_GC } from '../macro'
44

@@ -27,6 +27,7 @@ export function napi_create_async_work (env: napi_env, resource: napi_value, res
2727
const resourceName = String(emnapiCtx.jsValueFromNapiValue(resource_name)!)
2828

2929
const id = emnapiAWST.create(env, resourceObject, resourceName, execute, complete, data)
30+
from64('result')
3031
makeSetValue('result', 0, 'id', '*')
3132
return envObject.clearLastError()
3233
}

packages/emnapi/src/threadsafe-function.ts

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -356,7 +356,7 @@ const emnapiTSFN = {
356356
let arr: any, index: number
357357
// #if MEMORY64
358358
arr = new BigUint64Array(wasmMemory.buffer)
359-
index = (func + offset) >> 3
359+
index = (func + offset) >>> 3
360360
// #else
361361
arr = new Uint32Array(wasmMemory.buffer)
362362
index = (func + offset) >>> 2
@@ -368,7 +368,7 @@ const emnapiTSFN = {
368368
let arr: any, index: number
369369
// #if MEMORY64
370370
arr = new BigUint64Array(wasmMemory.buffer)
371-
index = (func + offset) >> 3
371+
index = (func + offset) >>> 3
372372
// #else
373373
arr = new Uint32Array(wasmMemory.buffer)
374374
index = (func + offset) >>> 2
@@ -383,7 +383,7 @@ const emnapiTSFN = {
383383
let arr: any, index: number
384384
// #if MEMORY64
385385
arr = new BigUint64Array(wasmMemory.buffer)
386-
index = (func + offset) >> 3
386+
index = (func + offset) >>> 3
387387
// #else
388388
arr = new Uint32Array(wasmMemory.buffer)
389389
index = (func + offset) >>> 2
@@ -395,7 +395,7 @@ const emnapiTSFN = {
395395
let arr: any, index: number
396396
// #if MEMORY64
397397
arr = new BigUint64Array(wasmMemory.buffer)
398-
index = (func + offset) >> 3
398+
index = (func + offset) >>> 3
399399
// #else
400400
arr = new Uint32Array(wasmMemory.buffer)
401401
index = (func + offset) >>> 2
@@ -447,7 +447,7 @@ const emnapiTSFN = {
447447
if (unsigned) {
448448
// #if MEMORY64
449449
arr = new BigUint64Array(wasmMemory.buffer)
450-
ret = Number(Atomics.load(arr, offset >> 3))
450+
ret = Number(Atomics.load(arr, offset >>> 3))
451451
// #else
452452
arr = new Uint32Array(wasmMemory.buffer)
453453
ret = Atomics.load(arr, offset >>> 2)
@@ -456,7 +456,7 @@ const emnapiTSFN = {
456456
} else {
457457
// #if MEMORY64
458458
arr = new BigInt64Array(wasmMemory.buffer)
459-
ret = Number(Atomics.load(arr, offset >> 3))
459+
ret = Number(Atomics.load(arr, offset >>> 3))
460460
// #else
461461
arr = new Int32Array(wasmMemory.buffer)
462462
ret = Atomics.load(arr, offset >>> 2)
@@ -469,7 +469,7 @@ const emnapiTSFN = {
469469
if (unsigned) {
470470
// #if MEMORY64
471471
arr = new BigUint64Array(wasmMemory.buffer)
472-
Atomics.store(arr, offset >> 3, BigInt(value) as any)
472+
Atomics.store(arr, offset >>> 3, BigInt(value) as any)
473473
// #else
474474
arr = new Uint32Array(wasmMemory.buffer)
475475
Atomics.store(arr, offset >>> 2, value)
@@ -478,7 +478,7 @@ const emnapiTSFN = {
478478
} else {
479479
// #if MEMORY64
480480
arr = new BigInt64Array(wasmMemory.buffer)
481-
Atomics.store(arr, offset >> 3, BigInt(value >>> 0) as any)
481+
Atomics.store(arr, offset >>> 3, BigInt(value >>> 0) as any)
482482
// #else
483483
arr = new Int32Array(wasmMemory.buffer)
484484
Atomics.store(arr, offset >>> 2, value >>> 0)

0 commit comments

Comments
 (0)