From 55b488dc62d14ea6c21ddf8d983a6531d8ba76c2 Mon Sep 17 00:00:00 2001 From: Tibor Vass Date: Sun, 9 Nov 2014 22:53:02 -0500 Subject: [PATCH] Fix decoding to []interface{} Signed-off-by: Tibor Vass --- copy.go | 2 +- inmem.go | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/copy.go b/copy.go index bb1721f..fe0b645 100644 --- a/copy.go +++ b/copy.go @@ -10,7 +10,7 @@ import ( func Copy(w Sender, r Receiver) (int, error) { var n int for { - m := make(map[string]interface{}) + var m interface{} err := r.Receive(&m) if err != nil { if err == io.EOF { diff --git a/inmem.go b/inmem.go index 14c46ca..38b5988 100644 --- a/inmem.go +++ b/inmem.go @@ -281,7 +281,7 @@ func (w *pipeSender) copyMessage(message interface{}) (interface{}, error) { if mapOk { return w.copyChannelMessage(mapCopy) } - return w.copyStructure(message) + return w.copyValue(message) } func (w *pipeSender) copyValue(v interface{}) (interface{}, error) { @@ -418,6 +418,7 @@ func (w *pipeSender) copyChannelInterfaceMessage(m map[interface{}]interface{}) return mCopy, nil } + func (w *pipeSender) copyStructure(m interface{}) (interface{}, error) { v := reflect.ValueOf(m) if v.Kind() == reflect.Ptr {