From 06bd4a6649d5388c6f315116f1bc58c6c7a6708d Mon Sep 17 00:00:00 2001 From: Chris Duncan Date: Thu, 2 Jan 2025 05:50:34 -0800 Subject: [PATCH] Fix pointer dereferencing which was creating a copy instead of modifying pointee. --- src/lib/workers/powgpu.ts | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/src/lib/workers/powgpu.ts b/src/lib/workers/powgpu.ts index 58d3185..18e883c 100644 --- a/src/lib/workers/powgpu.ts +++ b/src/lib/workers/powgpu.ts @@ -82,15 +82,14 @@ export class PowGpu extends WorkerInterface { * Sets v[a,a+1] += b * b0 is the low 32 bits of b, b1 represents the high 32 bits */ - fn add_uint64 (vv: ptr>, a: u32, b0: u32, b1: u32) { - var v: array = (*vv); - var o0: u32 = v[a] + b0; - var o1: u32 = v[a+1u] + b1; - if (v[a] > 0xFFFFFFFFu - b0) { // did low 32 bits overflow? + fn add_uint64 (ptr_v: ptr>, a: u32, b0: u32, b1: u32) { + var o0: u32 = (*ptr_v)[a] + b0; + var o1: u32 = (*ptr_v)[a+1u] + b1; + if ((*ptr_v)[a] > 0xFFFFFFFFu - b0) { // did low 32 bits overflow? o1 = o1 + 1u; } - v[a] = o0; - v[a+1u] = o1; + (*ptr_v)[a] = o0; + (*ptr_v)[a+1u] = o1; } /** -- 2.34.1