binary: makes NameMap and IndirectNameMap slices over values, not ptrs (#1351)
Signed-off-by: Takeshi Yoneda <takeshi@tetrate.io>
This commit is contained in:
@@ -82,7 +82,7 @@ func encodeNameSubsection(subsectionID uint8, content []byte) []byte {
|
||||
|
||||
// encodeNameAssoc encodes the index and data prefixed by their size.
|
||||
// See https://www.w3.org/TR/2019/REC-wasm-core-1-20191205/#binary-namemap
|
||||
func encodeNameAssoc(na *wasm.NameAssoc) []byte {
|
||||
func encodeNameAssoc(na wasm.NameAssoc) []byte {
|
||||
return append(leb128.EncodeUint32(na.Index), encodeSizePrefixed([]byte(na.Name))...)
|
||||
}
|
||||
|
||||
|
||||
@@ -131,12 +131,12 @@ func TestEncodeNameSubsection(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestEncodeNameAssoc(t *testing.T) {
|
||||
na := &wasm.NameAssoc{Index: 1, Name: "hello"}
|
||||
na := wasm.NameAssoc{Index: 1, Name: "hello"}
|
||||
require.Equal(t, []byte{byte(na.Index), 5, 'h', 'e', 'l', 'l', 'o'}, encodeNameAssoc(na))
|
||||
}
|
||||
|
||||
func TestEncodeNameMap(t *testing.T) {
|
||||
na := &wasm.NameAssoc{Index: 1, Name: "hello"}
|
||||
na := wasm.NameAssoc{Index: 1, Name: "hello"}
|
||||
m := wasm.NameMap{na}
|
||||
require.Equal(t, []byte{byte(1), byte(na.Index), 5, 'h', 'e', 'l', 'l', 'o'}, encodeNameMap(m))
|
||||
}
|
||||
|
||||
@@ -77,15 +77,15 @@ func NewModuleBinary(moduleName string, proxyTarget wazero.CompiledModule) []byt
|
||||
|
||||
proxyFuncIndex := cnt + funcNum
|
||||
// Assigns the same params name as the imported one.
|
||||
paramNames := &wasm.NameMapAssoc{Index: proxyFuncIndex}
|
||||
paramNames := wasm.NameMapAssoc{Index: proxyFuncIndex}
|
||||
for i, n := range def.ParamNames() {
|
||||
paramNames.NameMap = append(paramNames.NameMap, &wasm.NameAssoc{Index: wasm.Index(i), Name: n})
|
||||
paramNames.NameMap = append(paramNames.NameMap, wasm.NameAssoc{Index: wasm.Index(i), Name: n})
|
||||
}
|
||||
proxyModule.NameSection.LocalNames = append(proxyModule.NameSection.LocalNames, paramNames)
|
||||
|
||||
// Plus, assigns the same function name.
|
||||
proxyModule.NameSection.FunctionNames = append(proxyModule.NameSection.FunctionNames,
|
||||
&wasm.NameAssoc{Index: proxyFuncIndex, Name: name})
|
||||
wasm.NameAssoc{Index: proxyFuncIndex, Name: name})
|
||||
|
||||
// Finally, exports the proxy function with the same name as the imported one.
|
||||
proxyModule.ExportSection = append(proxyModule.ExportSection, wasm.Export{
|
||||
|
||||
Reference in New Issue
Block a user