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>
diff --git a/internal/impl/legacy_export.go b/internal/impl/legacy_export.go
index d40d4ff..8038333 100644
--- a/internal/impl/legacy_export.go
+++ b/internal/impl/legacy_export.go
@@ -7,7 +7,6 @@
import (
"encoding/binary"
"encoding/json"
- "fmt"
"hash/crc32"
"math"
@@ -75,17 +74,3 @@
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))
- }
-}
diff --git a/internal/impl/legacy_extension.go b/internal/impl/legacy_extension.go
index 16701b6..4a60f05 100644
--- a/internal/impl/legacy_extension.go
+++ b/internal/impl/legacy_extension.go
@@ -6,7 +6,6 @@
import (
"reflect"
- "sync"
pref "github.com/golang/protobuf/v2/reflect/protoreflect"
piface "github.com/golang/protobuf/v2/runtime/protoiface"
@@ -25,7 +24,7 @@
}
}
-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 @@
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 @@
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 @@
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) HasInit() bool {
- return m != nil
-}
-func (m legacyExtensionMap) Lock() {} // noop
-func (m legacyExtensionMap) Unlock() {} // noop
diff --git a/internal/impl/legacy_test.go b/internal/impl/legacy_test.go
index 1bc5acf..84cf071 100644
--- a/internal/impl/legacy_test.go
+++ b/internal/impl/legacy_test.go
@@ -29,7 +29,7 @@
type legacyTestMessage struct {
XXX_unrecognized []byte
- XXX_InternalExtensions pimpl.ExtensionFieldsV1
+ XXX_InternalExtensions map[int32]pimpl.ExtensionFieldV1
}
func (*legacyTestMessage) Reset() {}