internal/impl: fix map decode when value is before key

Fix a bug in handling the case where the encoding for a map item places
the value field (2) before the key field (1).

Change-Id: I2e6ad9af729a199e960e566ed7ef96bba3726990
Reviewed-on: https://go-review.googlesource.com/c/protobuf/+/211804
Reviewed-by: Joe Tsai <joetsai@google.com>
diff --git a/internal/impl/codec_map.go b/internal/impl/codec_map.go
index 5f7d9e2..94a1bc4 100644
--- a/internal/impl/codec_map.go
+++ b/internal/impl/codec_map.go
@@ -183,11 +183,12 @@
 			if wtyp != wire.BytesType {
 				break
 			}
-			v, n := wire.ConsumeBytes(b)
+			var v []byte
+			v, n = wire.ConsumeBytes(b)
 			if n < 0 {
 				return 0, wire.ParseError(n)
 			}
-			n, err = mapi.valMessageInfo.unmarshalPointer(v, pointerOfValue(val), 0, opts)
+			_, err = mapi.valMessageInfo.unmarshalPointer(v, pointerOfValue(val), 0, opts)
 		}
 		if err == errUnknown {
 			n = wire.ConsumeFieldValue(num, wtyp, b)