]> zoso.dev Git - libnemo.git/commitdiff
Fix pointer dereferencing which was creating a copy instead of modifying pointee.
authorChris Duncan <chris@zoso.dev>
Thu, 2 Jan 2025 13:50:34 +0000 (05:50 -0800)
committerChris Duncan <chris@zoso.dev>
Thu, 2 Jan 2025 13:50:34 +0000 (05:50 -0800)
src/lib/workers/powgpu.ts

index 58d3185eef800ec9d84b48c9176e99a1164ffecf..18e883cec67b6712c9a777a4d65cc7f2cc5d7953 100644 (file)
@@ -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<function, array<u32, 32>>, a: u32, b0: u32, b1: u32) {
-                       var v: array<u32, 32> = (*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<function, array<u32, 32>>, 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;
                }
 
                /**