From 4eee99aac5d890602a8dc8c5b8ff55670bb2d1fd Mon Sep 17 00:00:00 2001 From: Gus Date: Tue, 29 Jan 2019 03:17:40 -0600 Subject: [PATCH] core/types: remove use of package unsafe --- core/types/block.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/core/types/block.go b/core/types/block.go index 57905d8c7..b84e13c65 100644 --- a/core/types/block.go +++ b/core/types/block.go @@ -21,10 +21,10 @@ import ( "encoding/binary" "io" "math/big" + "reflect" "sort" "sync/atomic" "time" - "unsafe" "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/common/hexutil" @@ -102,10 +102,12 @@ func (h *Header) Hash() common.Hash { return rlpHash(h) } +var headerSize = common.StorageSize(reflect.TypeOf(Header{}).Size()) + // Size returns the approximate memory used by all internal contents. It is used // to approximate and limit the memory consumption of various caches. func (h *Header) Size() common.StorageSize { - return common.StorageSize(unsafe.Sizeof(*h)) + common.StorageSize(len(h.Extra)+(h.Difficulty.BitLen()+h.Number.BitLen()+h.Time.BitLen())/8) + return headerSize + common.StorageSize(len(h.Extra)+(h.Difficulty.BitLen()+h.Number.BitLen()+h.Time.BitLen())/8) } func rlpHash(x interface{}) (h common.Hash) {