goprotobuf: Various improvements to extension handling.
R=r
CC=golang-dev
http://codereview.appspot.com/4917043
diff --git a/proto/decode.go b/proto/decode.go
index 1c2bb3b..fe28821 100644
--- a/proto/decode.go
+++ b/proto/decode.go
@@ -358,7 +358,7 @@
iv := unsafe.Unreflect(t, unsafe.Pointer(&o.ptr))
if e, ok := iv.(extendableProto); ok && isExtensionField(e, int32(tag)) {
if err = o.skip(st, tag, wire); err == nil {
- e.ExtensionMap()[int32(tag)] = append([]byte(nil), o.buf[oi:o.index]...)
+ e.ExtensionMap()[int32(tag)] = Extension{enc: append([]byte(nil), o.buf[oi:o.index]...)}
}
continue
}