summaryrefslogtreecommitdiff
path: root/vendor/codeberg.org/gruf/go-ffmpreg/wasm/funcs.go
diff options
context:
space:
mode:
authorLibravatar Terin Stock <terinjokes@gmail.com>2025-03-09 17:47:56 +0100
committerLibravatar Terin Stock <terinjokes@gmail.com>2025-03-10 01:59:49 +0100
commit3ac1ee16f377d31a0fb80c8dae28b6239ac4229e (patch)
treef61faa581feaaeaba2542b9f2b8234a590684413 /vendor/codeberg.org/gruf/go-ffmpreg/wasm/funcs.go
parent[chore] update URLs to forked source (diff)
downloadgotosocial-3ac1ee16f377d31a0fb80c8dae28b6239ac4229e.tar.xz
[chore] remove vendor
Diffstat (limited to 'vendor/codeberg.org/gruf/go-ffmpreg/wasm/funcs.go')
-rw-r--r--vendor/codeberg.org/gruf/go-ffmpreg/wasm/funcs.go74
1 files changed, 0 insertions, 74 deletions
diff --git a/vendor/codeberg.org/gruf/go-ffmpreg/wasm/funcs.go b/vendor/codeberg.org/gruf/go-ffmpreg/wasm/funcs.go
deleted file mode 100644
index a809ff120..000000000
--- a/vendor/codeberg.org/gruf/go-ffmpreg/wasm/funcs.go
+++ /dev/null
@@ -1,74 +0,0 @@
-package wasm
-
-import (
- "context"
-
- "github.com/tetratelabs/wazero/api"
- "github.com/tetratelabs/wazero/experimental"
-)
-
-type snapshotskey struct{}
-
-// withSetjmpLongjmp updates the context to contain wazero/experimental.Snapshotter{} support,
-// and embeds the necessary snapshots map required for later calls to Setjmp() / Longjmp().
-func withSetjmpLongjmp(ctx context.Context) context.Context {
- snapshots := make(map[uint32]experimental.Snapshot, 10)
- ctx = experimental.WithSnapshotter(ctx)
- ctx = context.WithValue(ctx, snapshotskey{}, snapshots)
- return ctx
-}
-
-func getSnapshots(ctx context.Context) map[uint32]experimental.Snapshot {
- v, _ := ctx.Value(snapshotskey{}).(map[uint32]experimental.Snapshot)
- return v
-}
-
-// setjmp implements the C function: setjmp(env jmp_buf)
-func setjmp(ctx context.Context, mod api.Module, stack []uint64) {
-
- // Input arguments.
- envptr := api.DecodeU32(stack[0])
-
- // Take snapshot of current execution environment.
- snapshotter := experimental.GetSnapshotter(ctx)
- snapshot := snapshotter.Snapshot()
-
- // Get stored snapshots map.
- snapshots := getSnapshots(ctx)
- if snapshots == nil {
- panic("setjmp / longjmp not supported")
- }
-
- // Set latest snapshot in map.
- snapshots[envptr] = snapshot
-
- // Set return.
- stack[0] = 0
-}
-
-// longjmp implements the C function: int longjmp(env jmp_buf, value int)
-func longjmp(ctx context.Context, mod api.Module, stack []uint64) {
-
- // Input arguments.
- envptr := api.DecodeU32(stack[0])
- // val := stack[1]
-
- // Get stored snapshots map.
- snapshots := getSnapshots(ctx)
- if snapshots == nil {
- panic("setjmp / longjmp not supported")
- }
-
- // Get snapshot stored in map.
- snapshot := snapshots[envptr]
- if snapshot == nil {
- panic("must first call setjmp")
- }
-
- // Set return.
- stack[0] = 0
-
- // Restore execution and
- // return passed value arg.
- snapshot.Restore(stack[1:])
-}