bugfix: old js code; `Optional.from_ptr`
authorBrendan Hansen <brendan.f.hansen@gmail.com>
Mon, 24 Apr 2023 01:35:54 +0000 (20:35 -0500)
committerBrendan Hansen <brendan.f.hansen@gmail.com>
Mon, 24 Apr 2023 01:35:54 +0000 (20:35 -0500)
bin/onyx-loader.js
bin/onyx-thread.js
core/container/optional.onyx

index 011fc248d9f22b55be80ea9479a2c6b391c726d7..127b0e3d04f8e14b3b23a74663bd8ae6dcff9c24 100644 (file)
@@ -15,7 +15,7 @@ window.ONYX_MODULES.push({
 
     exit: function() { debugger; },
 
-    spawn_thread: function(id, tls_base, stack_base, funcidx, dataptr) {
+    spawn_thread: function(id, tls_base, stack_base, funcidx, closureptr, closuresize, dataptr) {
         try {
             let needed_imports = {};
 
@@ -31,14 +31,16 @@ window.ONYX_MODULES.push({
 
             window.ONYX_WORKERS[id] = new Worker(window.ONYX_THREAD_SCRIPT);
             window.ONYX_WORKERS[id].postMessage({
-                thread_id  : id,
-                memory     : window.ONYX_MEMORY,
-                wasm_bytes : window.ONYX_BYTES,
-                funcidx    : funcidx,
-                dataptr    : dataptr,
-                imports    : needed_imports,
-                tls_base   : tls_base,
-                stack_base : stack_base
+                thread_id   : id,
+                memory      : window.ONYX_MEMORY,
+                wasm_bytes  : window.ONYX_BYTES,
+                funcidx     : funcidx,
+                closureptr  : closureptr,
+                closuresize : closuresize,
+                dataptr     : dataptr,
+                imports     : needed_imports,
+                tls_base    : tls_base,
+                stack_base  : stack_base
             });
 
             return 1;
index d23f77078ee4b3d09f2de0f67ce22a023656f89e..e1426985be1c254670c468db317773328f2b32cf 100644 (file)
@@ -32,7 +32,7 @@ self.onmessage = function (msg) {
     .then(function(res) {
         self.ONYX_MEMORY = data.memory;
 
-        res.instance.exports._thread_start(data.thread_id, data.tls_base, data.stack_base, data.funcidx, data.dataptr);
+        res.instance.exports._thread_start(data.thread_id, data.tls_base, data.stack_base, data.funcidx, data.closureptr, data.closuresize, data.dataptr);
         res.instance.exports._thread_exit(data.thread_id);
     });
 ,
index 35ad5d4fed52a783a89ef13bf130c891da958600..6da427af6f24007bb69a59c84428198f57cd3b0e 100644 (file)
@@ -35,7 +35,8 @@ package core
         pointer to return the data stored at the pointer's address.
     """
     from_ptr :: macro (p: &$T) -> ?T {
-        if p do return *p;
+        p_ := p;
+        if p_ do return *p_;
         return .{};
     }