File tree Expand file tree Collapse file tree 1 file changed +6
-3
lines changed Expand file tree Collapse file tree 1 file changed +6
-3
lines changed Original file line number Diff line number Diff line change @@ -52,11 +52,14 @@ export const decode = (
52
52
// `decodeValues` assumes that the size of RawJSValue is 16.
53
53
export const decodeArray = ( ptr : pointer , length : number , memory : Memory ) => {
54
54
let result = [ ] ;
55
+ // It's safe to hold DataView here because WebAssembly.Memory.buffer won't
56
+ // change within this function.
57
+ const view = memory . dataView ( ) ;
55
58
for ( let index = 0 ; index < length ; index ++ ) {
56
59
const base = ptr + 16 * index ;
57
- const kind = memory . readUint32 ( base ) ;
58
- const payload1 = memory . readUint32 ( base + 4 ) ;
59
- const payload2 = memory . readFloat64 ( base + 8 ) ;
60
+ const kind = view . getUint32 ( base , true ) ;
61
+ const payload1 = view . getUint32 ( base + 4 , true ) ;
62
+ const payload2 = view . getFloat64 ( base + 8 , true ) ;
60
63
result . push ( decode ( kind , payload1 , payload2 , memory ) ) ;
61
64
}
62
65
return result ;
You can’t perform that action at this time.
0 commit comments