package binary
import (
"bytes"
"fmt"
"github.com/tetratelabs/wazero/api"
"github.com/tetratelabs/wazero/internal/wasm"
)
func decodeTable(r *bytes .Reader , enabledFeatures api .CoreFeatures , ret *wasm .Table ) (err error ) {
ret .Type , err = r .ReadByte ()
if err != nil {
return fmt .Errorf ("read leading byte: %v" , err )
}
if ret .Type != wasm .RefTypeFuncref {
if err = enabledFeatures .RequireEnabled (api .CoreFeatureReferenceTypes ); err != nil {
return fmt .Errorf ("table type funcref is invalid: %w" , err )
}
}
var shared bool
ret .Min , ret .Max , shared , err = decodeLimitsType (r )
if err != nil {
return fmt .Errorf ("read limits: %v" , err )
}
if ret .Min > wasm .MaximumFunctionIndex {
return fmt .Errorf ("table min must be at most %d" , wasm .MaximumFunctionIndex )
}
if ret .Max != nil {
if *ret .Max < ret .Min {
return fmt .Errorf ("table size minimum must not be greater than maximum" )
}
}
if shared {
return fmt .Errorf ("tables cannot be marked as shared" )
}
return
}
The pages are generated with Golds v0.8.2 . (GOOS=linux GOARCH=amd64)
Golds is a Go 101 project developed by Tapir Liu .
PR and bug reports are welcome and can be submitted to the issue list .
Please follow @zigo_101 (reachable from the left QR code) to get the latest news of Golds .