runtime/protoimpl: remove ExtensionFieldsV1

This is no longer directly used by v1.

Change-Id: I14a283dd2d1572d50ebd82fdf55f7d86bfacc272
Reviewed-on: https://go-review.googlesource.com/c/protobuf/+/172438
Reviewed-by: Damien Neil <dneil@google.com>
This commit is contained in:
Joe Tsai 2019-04-16 12:39:41 -07:00 committed by Joe Tsai
parent ab61d41ec9
commit 00e50dc9c1
9 changed files with 12 additions and 49 deletions

View File

@ -1,7 +1,7 @@
module github.com/golang/protobuf/v2/cmd/protoc-gen-go-grpc/testdata
require (
github.com/golang/protobuf v1.2.1-0.20190326022002-be03c15fcaa2
github.com/golang/protobuf v1.2.1-0.20190416233244-13cf6e79fd39
github.com/golang/protobuf/v2 v2.0.0
google.golang.org/grpc v1.19.0
)

View File

@ -1,7 +1,7 @@
module github.com/golang/protobuf/v2/cmd/protoc-gen-go/testdata
require (
github.com/golang/protobuf v1.2.1-0.20190326022002-be03c15fcaa2
github.com/golang/protobuf v1.2.1-0.20190416233244-13cf6e79fd39
github.com/golang/protobuf/v2 v2.0.0
)

2
go.mod
View File

@ -1,6 +1,6 @@
module github.com/golang/protobuf/v2
require (
github.com/golang/protobuf v1.2.1-0.20190326022002-be03c15fcaa2
github.com/golang/protobuf v1.2.1-0.20190416233244-13cf6e79fd39
github.com/google/go-cmp v0.2.1-0.20190312032427-6f77996f0c42
)

4
go.sum
View File

@ -1,6 +1,8 @@
github.com/golang/protobuf v1.2.1-0.20190322195920-d94fb84e04b7/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
github.com/golang/protobuf v1.2.1-0.20190326022002-be03c15fcaa2 h1:lkKDUagzhHJnfyahshk3wkddt6PWmUy/gVOV35CWQrA=
github.com/golang/protobuf v1.2.1-0.20190326022002-be03c15fcaa2/go.mod h1:rZ4veVXHB1S2+o7TKqD9Isxml062IeDutnCDtFPUlCc=
github.com/golang/protobuf v1.2.1-0.20190416233244-13cf6e79fd39 h1:5ypd1txfe3cmWAw+lhzJXDrjc8gyh6/3KkhnPSfkrUQ=
github.com/golang/protobuf v1.2.1-0.20190416233244-13cf6e79fd39/go.mod h1:RgnTNLHWo9HXezTFX5MTeuXnXx9eeQX8y3Cukv+9HaE=
github.com/golang/protobuf/v2 v2.0.0-20190322201422-f503c300f70e/go.mod h1:25ZALhydMFaBRgPH58a8zpFe9YXMAMjOYWtB6pNPcoo=
github.com/golang/protobuf/v2 v2.0.0-20190416222953-ab61d41ec93f/go.mod h1:baUT2weUsA1MR7ocRtLXLmi2B1s4VrUT3S6tO8AYzMw=
github.com/google/go-cmp v0.2.1-0.20190312032427-6f77996f0c42 h1:q3pnF5JFBNRz8sRD+IRj7Y6DMyYGTNqnZ9axTbSfoNI=
github.com/google/go-cmp v0.2.1-0.20190312032427-6f77996f0c42/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=

View File

@ -7,7 +7,6 @@ package impl
import (
"encoding/binary"
"encoding/json"
"fmt"
"hash/crc32"
"math"
@ -75,17 +74,3 @@ func (Export) CompressGZIP(in []byte) (out []byte) {
out = append(out, gzipFooter[:]...)
return out
}
// ExtensionFieldsOf returns an interface abstraction over various
// internal representations of extension fields.
//
// TODO: Delete this once v1 no longer needs this.
// Remember to delete the HasInit, Lock, and Unlock methods.
func (Export) ExtensionFieldsOf(p interface{}) legacyExtensionFieldsIface {
switch p := p.(type) {
case *ExtensionFieldsV1:
return (*legacyExtensionMap)(p)
default:
panic(fmt.Sprintf("invalid extension fields type: %T", p))
}
}

View File

@ -6,7 +6,6 @@ package impl
import (
"reflect"
"sync"
pref "github.com/golang/protobuf/v2/reflect/protoreflect"
piface "github.com/golang/protobuf/v2/runtime/protoiface"
@ -25,7 +24,7 @@ func makeLegacyExtensionFieldsFunc(t reflect.Type) func(p *messageDataType) pref
}
}
var extType = reflect.TypeOf(ExtensionFieldsV1{})
var extType = reflect.TypeOf(map[int32]ExtensionFieldV1{})
func makeLegacyExtensionMapFunc(t reflect.Type) func(*messageDataType) *legacyExtensionMap {
fx, _ := t.FieldByName("XXX_extensions")
@ -39,7 +38,7 @@ func makeLegacyExtensionMapFunc(t reflect.Type) func(*messageDataType) *legacyEx
fieldOffset := offsetOf(fx)
return func(p *messageDataType) *legacyExtensionMap {
v := p.p.Apply(fieldOffset).AsValueOf(fx.Type).Interface()
return (*legacyExtensionMap)(v.(*ExtensionFieldsV1))
return (*legacyExtensionMap)(v.(*map[int32]ExtensionFieldV1))
}
}
@ -240,20 +239,6 @@ func extensionTypeFromDesc(desc *piface.ExtensionDescV1) pref.ExtensionType {
return legacyWrapper.ExtensionTypeFromDesc(desc)
}
type legacyExtensionFieldsIface = interface {
Len() int
Has(pref.FieldNumber) bool
Get(pref.FieldNumber) ExtensionFieldV1
Set(pref.FieldNumber, ExtensionFieldV1)
Clear(pref.FieldNumber)
Range(f func(pref.FieldNumber, ExtensionFieldV1) bool)
// HasInit and Locker are used by v1 GetExtension to provide
// an artificial degree of concurrent safety.
HasInit() bool
sync.Locker
}
type ExtensionFieldV1 struct {
// TODO: We should turn this into a type alias to an unnamed type,
// which means that v1 can have the same struct, and we no longer have to
@ -290,9 +275,7 @@ type ExtensionFieldV1 struct {
Raw []byte // TODO: remove; let this be handled by XXX_unrecognized
}
type ExtensionFieldsV1 = map[int32]ExtensionFieldV1
type legacyExtensionMap ExtensionFieldsV1
type legacyExtensionMap map[int32]ExtensionFieldV1
func (m legacyExtensionMap) Len() int {
return len(m)
@ -320,9 +303,3 @@ func (m legacyExtensionMap) Range(f func(pref.FieldNumber, ExtensionFieldV1) boo
}
}
}
func (m legacyExtensionMap) HasInit() bool {
return m != nil
}
func (m legacyExtensionMap) Lock() {} // noop
func (m legacyExtensionMap) Unlock() {} // noop

View File

@ -29,7 +29,7 @@ import (
type legacyTestMessage struct {
XXX_unrecognized []byte
XXX_InternalExtensions pimpl.ExtensionFieldsV1
XXX_InternalExtensions map[int32]pimpl.ExtensionFieldV1
}
func (*legacyTestMessage) Reset() {}

View File

@ -21,7 +21,7 @@ import (
type legacyTestMessage struct {
XXX_unrecognized []byte
XXX_InternalExtensions pimpl.ExtensionFieldsV1
XXX_InternalExtensions map[int32]pimpl.ExtensionFieldV1
}
func (*legacyTestMessage) Reset() {}

View File

@ -46,6 +46,5 @@ type (
UnknownFields = []byte
SizeCache = int32
ExtensionFieldV1 = impl.ExtensionFieldV1
ExtensionFieldsV1 = impl.ExtensionFieldsV1
ExtensionFieldV1 = impl.ExtensionFieldV1
)