From e07d3418c4f2df0730f27e1ccd3d8de73b303b64 Mon Sep 17 00:00:00 2001
From: Brian Tiger Chow <brian.holderchow@gmail.com>
Date: Mon, 15 Sep 2014 07:47:13 -0700
Subject: [PATCH] refac(bitswap:message) accept block by value

---
 bitswap/bitswap.go              | 3 ++-
 bitswap/message/message.go      | 4 ++--
 bitswap/message/message_test.go | 7 ++-----
 3 files changed, 6 insertions(+), 8 deletions(-)

diff --git a/bitswap/bitswap.go b/bitswap/bitswap.go
index 8adf59ce..4bdcec06 100644
--- a/bitswap/bitswap.go
+++ b/bitswap/bitswap.go
@@ -157,7 +157,8 @@ func (bs *BitSwap) HasBlock(blk *blocks.Block) error {
 
 func (bs *BitSwap) SendBlock(p *peer.Peer, b *blocks.Block) {
 	message := bsmsg.New()
-	message.AppendBlock(b)
+	// TODO(brian): change interface to accept value instead of pointer
+	message.AppendBlock(*b)
 	bs.sender.SendMessage(context.Background(), p, message)
 }
 
diff --git a/bitswap/message/message.go b/bitswap/message/message.go
index 01ef4025..dc650631 100644
--- a/bitswap/message/message.go
+++ b/bitswap/message/message.go
@@ -15,7 +15,7 @@ type BitSwapMessage interface {
 	Wantlist() []u.Key
 	Blocks() []blocks.Block
 	AppendWanted(k u.Key)
-	AppendBlock(b *blocks.Block)
+	AppendBlock(b blocks.Block)
 	Exportable
 }
 
@@ -63,7 +63,7 @@ func (m *message) AppendWanted(k u.Key) {
 	m.pb.Wantlist = append(m.pb.Wantlist, string(k))
 }
 
-func (m *message) AppendBlock(b *blocks.Block) {
+func (m *message) AppendBlock(b blocks.Block) {
 	m.pb.Blocks = append(m.pb.Blocks, b.Data)
 }
 
diff --git a/bitswap/message/message_test.go b/bitswap/message/message_test.go
index 87a36cea..8ff345f1 100644
--- a/bitswap/message/message_test.go
+++ b/bitswap/message/message_test.go
@@ -4,8 +4,8 @@ import (
 	"bytes"
 	"testing"
 
-	blocks "github.com/jbenet/go-ipfs/blocks"
 	u "github.com/jbenet/go-ipfs/util"
+	testutil "github.com/jbenet/go-ipfs/util/testutil"
 )
 
 func TestAppendWanted(t *testing.T) {
@@ -39,10 +39,7 @@ func TestAppendBlock(t *testing.T) {
 
 	m := New()
 	for _, str := range strs {
-		block, err := blocks.NewBlock([]byte(str))
-		if err != nil {
-			t.Fail()
-		}
+		block := testutil.NewBlockOrFail(t, str)
 		m.AppendBlock(block)
 	}
 
-- 
GitLab