From dd575769df98dc12cfe890f4fb6013ea28c88923 Mon Sep 17 00:00:00 2001 From: Felix Lange Date: Thu, 24 Apr 2025 14:04:50 +0200 Subject: [PATCH] core/types: optimize EncodeBlockReceiptLists --- core/types/receipt.go | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/core/types/receipt.go b/core/types/receipt.go index 5d13ddb649..ec99fbf888 100644 --- a/core/types/receipt.go +++ b/core/types/receipt.go @@ -380,17 +380,18 @@ func (rs Receipts) DeriveFields(config *params.ChainConfig, hash common.Hash, nu // EncodeBlockReceiptLists encodes a list of block receipt lists into RLP. func EncodeBlockReceiptLists(receipts []Receipts) []rlp.RawValue { - result := make([]rlp.RawValue, 0) - for _, receipt := range receipts { - storageReceipts := make([]*ReceiptForStorage, len(receipt)) - for i, r := range receipt { - storageReceipts[i] = (*ReceiptForStorage)(r) + var storageReceipts []*ReceiptForStorage + result := make([]rlp.RawValue, len(receipts)) + for i, receipt := range receipts { + storageReceipts = storageReceipts[:0] + for _, r := range receipt { + storageReceipts = append(storageReceipts, (*ReceiptForStorage)(r)) } bytes, err := rlp.EncodeToBytes(storageReceipts) if err != nil { log.Crit("Failed to encode block receipts", "err", err) } - result = append(result, bytes) + result[i] = bytes } return result }