summaryrefslogtreecommitdiff
path: root/vendor/google.golang.org/protobuf/internal/impl/legacy_file.go
diff options
context:
space:
mode:
authorLibravatar Terin Stock <terinjokes@gmail.com>2025-03-09 17:47:56 +0100
committerLibravatar Terin Stock <terinjokes@gmail.com>2025-03-10 01:59:49 +0100
commit3ac1ee16f377d31a0fb80c8dae28b6239ac4229e (patch)
treef61faa581feaaeaba2542b9f2b8234a590684413 /vendor/google.golang.org/protobuf/internal/impl/legacy_file.go
parent[chore] update URLs to forked source (diff)
downloadgotosocial-3ac1ee16f377d31a0fb80c8dae28b6239ac4229e.tar.xz
[chore] remove vendor
Diffstat (limited to 'vendor/google.golang.org/protobuf/internal/impl/legacy_file.go')
-rw-r--r--vendor/google.golang.org/protobuf/internal/impl/legacy_file.go81
1 files changed, 0 insertions, 81 deletions
diff --git a/vendor/google.golang.org/protobuf/internal/impl/legacy_file.go b/vendor/google.golang.org/protobuf/internal/impl/legacy_file.go
deleted file mode 100644
index b649f1124..000000000
--- a/vendor/google.golang.org/protobuf/internal/impl/legacy_file.go
+++ /dev/null
@@ -1,81 +0,0 @@
-// Copyright 2018 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package impl
-
-import (
- "bytes"
- "compress/gzip"
- "io"
- "sync"
-
- "google.golang.org/protobuf/internal/filedesc"
- "google.golang.org/protobuf/reflect/protoreflect"
- "google.golang.org/protobuf/reflect/protoregistry"
-)
-
-// Every enum and message type generated by protoc-gen-go since commit 2fc053c5
-// on February 25th, 2016 has had a method to get the raw descriptor.
-// Types that were not generated by protoc-gen-go or were generated prior
-// to that version are not supported.
-//
-// The []byte returned is the encoded form of a FileDescriptorProto message
-// compressed using GZIP. The []int is the path from the top-level file
-// to the specific message or enum declaration.
-type (
- enumV1 interface {
- EnumDescriptor() ([]byte, []int)
- }
- messageV1 interface {
- Descriptor() ([]byte, []int)
- }
-)
-
-var legacyFileDescCache sync.Map // map[*byte]protoreflect.FileDescriptor
-
-// legacyLoadFileDesc unmarshals b as a compressed FileDescriptorProto message.
-//
-// This assumes that b is immutable and that b does not refer to part of a
-// concatenated series of GZIP files (which would require shenanigans that
-// rely on the concatenation properties of both protobufs and GZIP).
-// File descriptors generated by protoc-gen-go do not rely on that property.
-func legacyLoadFileDesc(b []byte) protoreflect.FileDescriptor {
- // Fast-path: check whether we already have a cached file descriptor.
- if fd, ok := legacyFileDescCache.Load(&b[0]); ok {
- return fd.(protoreflect.FileDescriptor)
- }
-
- // Slow-path: decompress and unmarshal the file descriptor proto.
- zr, err := gzip.NewReader(bytes.NewReader(b))
- if err != nil {
- panic(err)
- }
- b2, err := io.ReadAll(zr)
- if err != nil {
- panic(err)
- }
-
- fd := filedesc.Builder{
- RawDescriptor: b2,
- FileRegistry: resolverOnly{protoregistry.GlobalFiles}, // do not register back to global registry
- }.Build().File
- if fd, ok := legacyFileDescCache.LoadOrStore(&b[0], fd); ok {
- return fd.(protoreflect.FileDescriptor)
- }
- return fd
-}
-
-type resolverOnly struct {
- reg *protoregistry.Files
-}
-
-func (r resolverOnly) FindFileByPath(path string) (protoreflect.FileDescriptor, error) {
- return r.reg.FindFileByPath(path)
-}
-func (r resolverOnly) FindDescriptorByName(name protoreflect.FullName) (protoreflect.Descriptor, error) {
- return r.reg.FindDescriptorByName(name)
-}
-func (resolverOnly) RegisterFile(protoreflect.FileDescriptor) error {
- return nil
-}