aboutsummaryrefslogtreecommitdiff
path: root/bencode/bdecode.go
diff options
context:
space:
mode:
Diffstat (limited to 'bencode/bdecode.go')
-rw-r--r--bencode/bdecode.go7
1 files changed, 7 insertions, 0 deletions
diff --git a/bencode/bdecode.go b/bencode/bdecode.go
index 67f37b1..14ed78a 100644
--- a/bencode/bdecode.go
+++ b/bencode/bdecode.go
@@ -123,6 +123,13 @@ func (d *decodeState) unmarshalString(v reflect.Value) error {
switch v.Kind() {
case reflect.Slice:
v.SetBytes([]byte(s))
+ case reflect.Array:
+ if len(s) != v.Len() {
+ return ErrValue
+ }
+ for i := 0; i < v.Len(); i++ {
+ v.Index(i).Set(reflect.ValueOf(s[i]))
+ }
default:
v.SetString(s)
}