diff --git a/compiler/test/stdlib/marshal.test.gr b/compiler/test/stdlib/marshal.test.gr index 1c3488f02..e687ace90 100644 --- a/compiler/test/stdlib/marshal.test.gr +++ b/compiler/test/stdlib/marshal.test.gr @@ -91,3 +91,5 @@ let truncatedRecord = Bytes.slice( ) ) assert Result.isErr(unmarshal(truncatedRecord)) + +assert Marshal.marshal("🌾") == Marshal.marshal("🌾") diff --git a/stdlib/marshal.gr b/stdlib/marshal.gr index c8f448206..8c088a1f8 100644 --- a/stdlib/marshal.gr +++ b/stdlib/marshal.gr @@ -423,8 +423,11 @@ let marshal = (value, buf) => { @unsafe provide let marshal = value => { let valuePtr = fromGrain(value) - let buf = allocateBytes(size(valuePtr)) + let size = size(valuePtr) + let buf = allocateBytes(size) + Memory.fill(buf + 8n, 0n, size) marshal(valuePtr, buf + 8n) + ignore(value) toGrain(buf): Bytes }