summaryrefslogtreecommitdiff
path: root/vendor/github.com/tetratelabs/wazero/internal/wasm/binary/data.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/github.com/tetratelabs/wazero/internal/wasm/binary/data.go
parent[chore] update URLs to forked source (diff)
downloadgotosocial-3ac1ee16f377d31a0fb80c8dae28b6239ac4229e.tar.xz
[chore] remove vendor
Diffstat (limited to 'vendor/github.com/tetratelabs/wazero/internal/wasm/binary/data.go')
-rw-r--r--vendor/github.com/tetratelabs/wazero/internal/wasm/binary/data.go79
1 files changed, 0 insertions, 79 deletions
diff --git a/vendor/github.com/tetratelabs/wazero/internal/wasm/binary/data.go b/vendor/github.com/tetratelabs/wazero/internal/wasm/binary/data.go
deleted file mode 100644
index 054ccb3c6..000000000
--- a/vendor/github.com/tetratelabs/wazero/internal/wasm/binary/data.go
+++ /dev/null
@@ -1,79 +0,0 @@
-package binary
-
-import (
- "bytes"
- "fmt"
- "io"
-
- "github.com/tetratelabs/wazero/api"
- "github.com/tetratelabs/wazero/internal/leb128"
- "github.com/tetratelabs/wazero/internal/wasm"
-)
-
-// dataSegmentPrefix represents three types of data segments.
-//
-// https://www.w3.org/TR/2022/WD-wasm-core-2-20220419/binary/modules.html#data-section
-type dataSegmentPrefix = uint32
-
-const (
- // dataSegmentPrefixActive is the prefix for the version 1.0 compatible data segment, which is classified as "active" in 2.0.
- dataSegmentPrefixActive dataSegmentPrefix = 0x0
- // dataSegmentPrefixPassive prefixes the "passive" data segment as in version 2.0 specification.
- dataSegmentPrefixPassive dataSegmentPrefix = 0x1
- // dataSegmentPrefixActiveWithMemoryIndex is the active prefix with memory index encoded which is defined for futur use as of 2.0.
- dataSegmentPrefixActiveWithMemoryIndex dataSegmentPrefix = 0x2
-)
-
-func decodeDataSegment(r *bytes.Reader, enabledFeatures api.CoreFeatures, ret *wasm.DataSegment) (err error) {
- dataSegmentPrefx, _, err := leb128.DecodeUint32(r)
- if err != nil {
- err = fmt.Errorf("read data segment prefix: %w", err)
- return
- }
-
- if dataSegmentPrefx != dataSegmentPrefixActive {
- if err = enabledFeatures.RequireEnabled(api.CoreFeatureBulkMemoryOperations); err != nil {
- err = fmt.Errorf("non-zero prefix for data segment is invalid as %w", err)
- return
- }
- }
-
- switch dataSegmentPrefx {
- case dataSegmentPrefixActive,
- dataSegmentPrefixActiveWithMemoryIndex:
- // Active data segment as in
- // https://www.w3.org/TR/2022/WD-wasm-core-2-20220419/binary/modules.html#data-section
- if dataSegmentPrefx == 0x2 {
- d, _, err := leb128.DecodeUint32(r)
- if err != nil {
- return fmt.Errorf("read memory index: %v", err)
- } else if d != 0 {
- return fmt.Errorf("memory index must be zero but was %d", d)
- }
- }
-
- err = decodeConstantExpression(r, enabledFeatures, &ret.OffsetExpression)
- if err != nil {
- return fmt.Errorf("read offset expression: %v", err)
- }
- case dataSegmentPrefixPassive:
- // Passive data segment doesn't need const expr nor memory index encoded.
- // https://www.w3.org/TR/2022/WD-wasm-core-2-20220419/binary/modules.html#data-section
- ret.Passive = true
- default:
- err = fmt.Errorf("invalid data segment prefix: 0x%x", dataSegmentPrefx)
- return
- }
-
- vs, _, err := leb128.DecodeUint32(r)
- if err != nil {
- err = fmt.Errorf("get the size of vector: %v", err)
- return
- }
-
- ret.Init = make([]byte, vs)
- if _, err = io.ReadFull(r, ret.Init); err != nil {
- err = fmt.Errorf("read bytes for init: %v", err)
- }
- return
-}