From 05a2af40ec4213bfc1083641619cdbde2c20c9ba Mon Sep 17 00:00:00 2001 From: qianbin Date: Tue, 10 May 2022 22:53:55 +0800 Subject: [PATCH 1/2] core/vm: remove unnecessary memset for Memory.Set32 --- core/vm/memory.go | 2 -- 1 file changed, 2 deletions(-) diff --git a/core/vm/memory.go b/core/vm/memory.go index ba5f8485dc95..90ab9748695f 100644 --- a/core/vm/memory.go +++ b/core/vm/memory.go @@ -55,8 +55,6 @@ func (m *Memory) Set32(offset uint64, val *uint256.Int) { if offset+32 > uint64(len(m.store)) { panic("invalid memory: store empty") } - // Zero the memory area - copy(m.store[offset:offset+32], []byte{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}) // Fill in relevant bits val.WriteToSlice(m.store[offset:]) } From 2764a1d91f14c4204f7ec4fccc1688033a43dda5 Mon Sep 17 00:00:00 2001 From: qianbin Date: Wed, 11 May 2022 14:29:06 +0800 Subject: [PATCH 2/2] core/vm: optimize Memory.Set32 --- core/vm/memory.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/core/vm/memory.go b/core/vm/memory.go index 90ab9748695f..efbef81d9ba6 100644 --- a/core/vm/memory.go +++ b/core/vm/memory.go @@ -56,7 +56,8 @@ func (m *Memory) Set32(offset uint64, val *uint256.Int) { panic("invalid memory: store empty") } // Fill in relevant bits - val.WriteToSlice(m.store[offset:]) + b32 := val.Bytes32() + copy(m.store[offset:], b32[:]) } // Resize resizes the memory to size