google-protobuf 4.27.2 → 4.35.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/ext/google/protobuf_c/convert.c +32 -14
- data/ext/google/protobuf_c/defs.c +475 -133
- data/ext/google/protobuf_c/extconf.rb +20 -10
- data/ext/google/protobuf_c/glue.c +63 -0
- data/ext/google/protobuf_c/map.c +145 -56
- data/ext/google/protobuf_c/map.h +6 -2
- data/ext/google/protobuf_c/message.c +180 -97
- data/ext/google/protobuf_c/message.h +2 -2
- data/ext/google/protobuf_c/protobuf.c +14 -13
- data/ext/google/protobuf_c/protobuf.h +3 -15
- data/ext/google/protobuf_c/repeated_field.c +134 -53
- data/ext/google/protobuf_c/repeated_field.h +5 -1
- data/ext/google/protobuf_c/ruby-upb.c +14522 -12698
- data/ext/google/protobuf_c/ruby-upb.h +8273 -4619
- data/ext/google/protobuf_c/third_party/utf8_range/utf8_range.c +22 -282
- data/ext/google/protobuf_c/third_party/utf8_range/utf8_range.h +2 -1
- data/ext/google/protobuf_c/third_party/utf8_range/utf8_range_neon.inc +117 -0
- data/ext/google/protobuf_c/third_party/utf8_range/utf8_range_sse.inc +272 -0
- data/lib/google/protobuf/any_pb.rb +1 -1
- data/lib/google/protobuf/api_pb.rb +2 -2
- data/lib/google/protobuf/descriptor_pb.rb +6 -2
- data/lib/google/protobuf/duration_pb.rb +1 -1
- data/lib/google/protobuf/empty_pb.rb +1 -1
- data/lib/google/protobuf/ffi/descriptor.rb +11 -2
- data/lib/google/protobuf/ffi/descriptor_pool.rb +7 -1
- data/lib/google/protobuf/ffi/enum_descriptor.rb +10 -0
- data/lib/google/protobuf/ffi/ffi.rb +5 -2
- data/lib/google/protobuf/ffi/field_descriptor.rb +16 -0
- data/lib/google/protobuf/ffi/file_descriptor.rb +36 -0
- data/lib/google/protobuf/ffi/internal/arena.rb +0 -6
- data/lib/google/protobuf/ffi/internal/convert.rb +9 -6
- data/lib/google/protobuf/ffi/internal/pointer_helper.rb +2 -1
- data/lib/google/protobuf/ffi/map.rb +47 -23
- data/lib/google/protobuf/ffi/message.rb +188 -64
- data/lib/google/protobuf/ffi/method_descriptor.rb +11 -1
- data/lib/google/protobuf/ffi/oneof_descriptor.rb +10 -0
- data/lib/google/protobuf/ffi/repeated_field.rb +42 -16
- data/lib/google/protobuf/ffi/service_descriptor.rb +11 -1
- data/lib/google/protobuf/field_mask_pb.rb +1 -1
- data/lib/google/protobuf/message_exts.rb +4 -0
- data/lib/google/protobuf/plugin_pb.rb +1 -1
- data/lib/google/protobuf/source_context_pb.rb +1 -1
- data/lib/google/protobuf/struct_pb.rb +1 -1
- data/lib/google/protobuf/timestamp_pb.rb +1 -1
- data/lib/google/protobuf/type_pb.rb +1 -1
- data/lib/google/protobuf/wrappers_pb.rb +1 -1
- data/lib/google/protobuf_ffi.rb +3 -2
- data/lib/google/tasks/ffi.rake +1 -1
- metadata +29 -34
- data/ext/google/protobuf_c/wrap_memcpy.c +0 -29
|
@@ -64,6 +64,15 @@ module Google
|
|
|
64
64
|
end
|
|
65
65
|
end
|
|
66
66
|
|
|
67
|
+
def to_proto
|
|
68
|
+
@to_proto ||= begin
|
|
69
|
+
size_ptr = ::FFI::MemoryPointer.new(:size_t, 1)
|
|
70
|
+
temporary_arena = Google::Protobuf::FFI.create_arena
|
|
71
|
+
buffer = Google::Protobuf::FFI.oneof_to_proto(self, size_ptr, temporary_arena)
|
|
72
|
+
Google::Protobuf::OneofDescriptorProto.decode(buffer.read_string_length(size_ptr.read(:size_t)).force_encoding("ASCII-8BIT").freeze)
|
|
73
|
+
end
|
|
74
|
+
end
|
|
75
|
+
|
|
67
76
|
private
|
|
68
77
|
|
|
69
78
|
def initialize(oneof_def, descriptor_pool)
|
|
@@ -89,6 +98,7 @@ module Google
|
|
|
89
98
|
attach_function :get_oneof_field_by_index, :upb_OneofDef_Field, [OneofDescriptor, :int], FieldDescriptor
|
|
90
99
|
attach_function :get_oneof_containing_type,:upb_OneofDef_ContainingType, [:pointer], Descriptor
|
|
91
100
|
attach_function :oneof_options, :OneOfDescriptor_serialized_options, [OneofDescriptor, :pointer, Internal::Arena], :pointer
|
|
101
|
+
attach_function :oneof_to_proto, :OneOfDescriptor_serialized_to_proto, [OneofDescriptor, :pointer, Internal::Arena], :pointer
|
|
92
102
|
|
|
93
103
|
# FieldDescriptor
|
|
94
104
|
attach_function :real_containing_oneof, :upb_FieldDef_RealContainingOneof, [FieldDescriptor], OneofDescriptor
|
|
@@ -24,12 +24,14 @@ module Google
|
|
|
24
24
|
module Protobuf
|
|
25
25
|
class FFI
|
|
26
26
|
# Array
|
|
27
|
-
attach_function :append_array,
|
|
28
|
-
attach_function :get_msgval_at
|
|
29
|
-
attach_function :create_array,
|
|
30
|
-
attach_function :array_resize,
|
|
31
|
-
attach_function :array_set,
|
|
32
|
-
attach_function :array_size,
|
|
27
|
+
attach_function :append_array, :upb_Array_Append, [:Array, MessageValue.by_value, Internal::Arena], :bool
|
|
28
|
+
attach_function :get_msgval_at, :upb_Array_Get, [:Array, :size_t], MessageValue.by_value
|
|
29
|
+
attach_function :create_array, :upb_Array_New, [Internal::Arena, CType], :Array
|
|
30
|
+
attach_function :array_resize, :upb_Array_Resize, [:Array, :size_t, Internal::Arena], :bool
|
|
31
|
+
attach_function :array_set, :upb_Array_Set, [:Array, :size_t, MessageValue.by_value], :void
|
|
32
|
+
attach_function :array_size, :upb_Array_Size, [:Array], :size_t
|
|
33
|
+
attach_function :array_freeze, :upb_Array_Freeze, [:Array, MiniTable.by_ref], :void
|
|
34
|
+
attach_function :array_frozen?, :upb_Array_IsFrozen, [:Array], :bool
|
|
33
35
|
end
|
|
34
36
|
|
|
35
37
|
class RepeatedField
|
|
@@ -174,16 +176,36 @@ module Google
|
|
|
174
176
|
end
|
|
175
177
|
alias size :length
|
|
176
178
|
|
|
179
|
+
##
|
|
180
|
+
# Is this object frozen?
|
|
181
|
+
# Returns true if either this Ruby wrapper or the underlying
|
|
182
|
+
# representation are frozen. Freezes the wrapper if the underlying
|
|
183
|
+
# representation is already frozen but this wrapper isn't.
|
|
184
|
+
def frozen?
|
|
185
|
+
unless Google::Protobuf::FFI.array_frozen? array
|
|
186
|
+
raise RuntimeError.new "Ruby frozen RepeatedField with mutable representation" if super
|
|
187
|
+
return false
|
|
188
|
+
end
|
|
189
|
+
method(:freeze).super_method.call unless super
|
|
190
|
+
true
|
|
191
|
+
end
|
|
192
|
+
|
|
193
|
+
##
|
|
194
|
+
# Freezes the RepeatedField object. We have to intercept this so we can
|
|
195
|
+
# freeze the underlying representation, not just the Ruby wrapper. Returns
|
|
196
|
+
# self.
|
|
177
197
|
def freeze
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
if type == :message
|
|
182
|
-
each do |element|
|
|
183
|
-
element.freeze
|
|
198
|
+
if method(:frozen?).super_method.call
|
|
199
|
+
unless Google::Protobuf::FFI.array_frozen? array
|
|
200
|
+
raise RuntimeError.new "Underlying representation of repeated field still mutable despite frozen wrapper"
|
|
184
201
|
end
|
|
202
|
+
return self
|
|
185
203
|
end
|
|
186
|
-
|
|
204
|
+
unless Google::Protobuf::FFI.array_frozen? array
|
|
205
|
+
mini_table = (type == :message) ? Google::Protobuf::FFI.get_mini_table(@descriptor) : nil
|
|
206
|
+
Google::Protobuf::FFI.array_freeze(array, mini_table)
|
|
207
|
+
end
|
|
208
|
+
super
|
|
187
209
|
end
|
|
188
210
|
|
|
189
211
|
def dup
|
|
@@ -348,10 +370,14 @@ module Google
|
|
|
348
370
|
OBJECT_CACHE.try_add(@array.address, self)
|
|
349
371
|
end
|
|
350
372
|
|
|
351
|
-
|
|
352
|
-
#
|
|
373
|
+
##
|
|
374
|
+
# Constructor that uses the type information from the given
|
|
375
|
+
# FieldDescriptor to configure the new RepeatedField instance.
|
|
376
|
+
# @param field [FieldDescriptor] Type information for the new RepeatedField
|
|
353
377
|
# @param arena [Arena] Owning message's arena
|
|
354
|
-
|
|
378
|
+
# @param values [Enumerable] Initial values
|
|
379
|
+
# @param array [::FFI::Pointer] Existing upb_Array
|
|
380
|
+
def self.construct_for_field(field, arena: nil, values: nil, array: nil)
|
|
355
381
|
instance = allocate
|
|
356
382
|
options = {initial_values: values, name: field.name, arena: arena, array: array}
|
|
357
383
|
if [:enum, :message].include? field.type
|
|
@@ -77,10 +77,19 @@ module Google
|
|
|
77
77
|
end
|
|
78
78
|
end
|
|
79
79
|
|
|
80
|
+
def to_proto
|
|
81
|
+
@to_proto ||= begin
|
|
82
|
+
size_ptr = ::FFI::MemoryPointer.new(:size_t, 1)
|
|
83
|
+
temporary_arena = Google::Protobuf::FFI.create_arena
|
|
84
|
+
buffer = Google::Protobuf::FFI.service_to_proto(self, size_ptr, temporary_arena)
|
|
85
|
+
Google::Protobuf::ServiceDescriptorProto.decode(buffer.read_string_length(size_ptr.read(:size_t)).force_encoding("ASCII-8BIT").freeze)
|
|
86
|
+
end
|
|
87
|
+
end
|
|
88
|
+
|
|
80
89
|
private
|
|
81
90
|
|
|
82
91
|
def initialize(service_def, descriptor_pool)
|
|
83
|
-
@service_def = service_def
|
|
92
|
+
@service_def = service_def
|
|
84
93
|
@descriptor_pool = descriptor_pool
|
|
85
94
|
end
|
|
86
95
|
|
|
@@ -102,6 +111,7 @@ module Google
|
|
|
102
111
|
attach_function :method_count, :upb_ServiceDef_MethodCount, [ServiceDescriptor], :int
|
|
103
112
|
attach_function :get_method_by_index, :upb_ServiceDef_Method, [ServiceDescriptor, :int], MethodDescriptor
|
|
104
113
|
attach_function :service_options, :ServiceDescriptor_serialized_options, [ServiceDescriptor, :pointer, Internal::Arena], :pointer
|
|
114
|
+
attach_function :service_to_proto, :ServiceDescriptor_serialized_to_proto, [ServiceDescriptor, :pointer, Internal::Arena], :pointer
|
|
105
115
|
end
|
|
106
116
|
end
|
|
107
117
|
end
|
|
@@ -7,7 +7,7 @@ require 'google/protobuf'
|
|
|
7
7
|
|
|
8
8
|
descriptor_data = "\n google/protobuf/field_mask.proto\x12\x0fgoogle.protobuf\"\x1a\n\tFieldMask\x12\r\n\x05paths\x18\x01 \x03(\tB\x85\x01\n\x13\x63om.google.protobufB\x0e\x46ieldMaskProtoP\x01Z2google.golang.org/protobuf/types/known/fieldmaskpb\xf8\x01\x01\xa2\x02\x03GPB\xaa\x02\x1eGoogle.Protobuf.WellKnownTypesb\x06proto3"
|
|
9
9
|
|
|
10
|
-
pool = Google::Protobuf::DescriptorPool.generated_pool
|
|
10
|
+
pool = ::Google::Protobuf::DescriptorPool.generated_pool
|
|
11
11
|
pool.add_serialized_file(descriptor_data)
|
|
12
12
|
|
|
13
13
|
module Google
|
|
@@ -9,7 +9,7 @@ require 'google/protobuf/descriptor_pb'
|
|
|
9
9
|
|
|
10
10
|
descriptor_data = "\n%google/protobuf/compiler/plugin.proto\x12\x18google.protobuf.compiler\x1a google/protobuf/descriptor.proto\"F\n\x07Version\x12\r\n\x05major\x18\x01 \x01(\x05\x12\r\n\x05minor\x18\x02 \x01(\x05\x12\r\n\x05patch\x18\x03 \x01(\x05\x12\x0e\n\x06suffix\x18\x04 \x01(\t\"\x81\x02\n\x14\x43odeGeneratorRequest\x12\x18\n\x10\x66ile_to_generate\x18\x01 \x03(\t\x12\x11\n\tparameter\x18\x02 \x01(\t\x12\x38\n\nproto_file\x18\x0f \x03(\x0b\x32$.google.protobuf.FileDescriptorProto\x12\x45\n\x17source_file_descriptors\x18\x11 \x03(\x0b\x32$.google.protobuf.FileDescriptorProto\x12;\n\x10\x63ompiler_version\x18\x03 \x01(\x0b\x32!.google.protobuf.compiler.Version\"\x92\x03\n\x15\x43odeGeneratorResponse\x12\r\n\x05\x65rror\x18\x01 \x01(\t\x12\x1a\n\x12supported_features\x18\x02 \x01(\x04\x12\x17\n\x0fminimum_edition\x18\x03 \x01(\x05\x12\x17\n\x0fmaximum_edition\x18\x04 \x01(\x05\x12\x42\n\x04\x66ile\x18\x0f \x03(\x0b\x32\x34.google.protobuf.compiler.CodeGeneratorResponse.File\x1a\x7f\n\x04\x46ile\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x17\n\x0finsertion_point\x18\x02 \x01(\t\x12\x0f\n\x07\x63ontent\x18\x0f \x01(\t\x12?\n\x13generated_code_info\x18\x10 \x01(\x0b\x32\".google.protobuf.GeneratedCodeInfo\"W\n\x07\x46\x65\x61ture\x12\x10\n\x0c\x46\x45\x41TURE_NONE\x10\x00\x12\x1b\n\x17\x46\x45\x41TURE_PROTO3_OPTIONAL\x10\x01\x12\x1d\n\x19\x46\x45\x41TURE_SUPPORTS_EDITIONS\x10\x02\x42r\n\x1c\x63om.google.protobuf.compilerB\x0cPluginProtosZ)google.golang.org/protobuf/types/pluginpb\xaa\x02\x18Google.Protobuf.Compiler"
|
|
11
11
|
|
|
12
|
-
pool = Google::Protobuf::DescriptorPool.generated_pool
|
|
12
|
+
pool = ::Google::Protobuf::DescriptorPool.generated_pool
|
|
13
13
|
pool.add_serialized_file(descriptor_data)
|
|
14
14
|
|
|
15
15
|
module Google
|
|
@@ -7,7 +7,7 @@ require 'google/protobuf'
|
|
|
7
7
|
|
|
8
8
|
descriptor_data = "\n$google/protobuf/source_context.proto\x12\x0fgoogle.protobuf\"\"\n\rSourceContext\x12\x11\n\tfile_name\x18\x01 \x01(\tB\x8a\x01\n\x13\x63om.google.protobufB\x12SourceContextProtoP\x01Z6google.golang.org/protobuf/types/known/sourcecontextpb\xa2\x02\x03GPB\xaa\x02\x1eGoogle.Protobuf.WellKnownTypesb\x06proto3"
|
|
9
9
|
|
|
10
|
-
pool = Google::Protobuf::DescriptorPool.generated_pool
|
|
10
|
+
pool = ::Google::Protobuf::DescriptorPool.generated_pool
|
|
11
11
|
pool.add_serialized_file(descriptor_data)
|
|
12
12
|
|
|
13
13
|
module Google
|
|
@@ -7,7 +7,7 @@ require 'google/protobuf'
|
|
|
7
7
|
|
|
8
8
|
descriptor_data = "\n\x1cgoogle/protobuf/struct.proto\x12\x0fgoogle.protobuf\"\x84\x01\n\x06Struct\x12\x33\n\x06\x66ields\x18\x01 \x03(\x0b\x32#.google.protobuf.Struct.FieldsEntry\x1a\x45\n\x0b\x46ieldsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12%\n\x05value\x18\x02 \x01(\x0b\x32\x16.google.protobuf.Value:\x02\x38\x01\"\xea\x01\n\x05Value\x12\x30\n\nnull_value\x18\x01 \x01(\x0e\x32\x1a.google.protobuf.NullValueH\x00\x12\x16\n\x0cnumber_value\x18\x02 \x01(\x01H\x00\x12\x16\n\x0cstring_value\x18\x03 \x01(\tH\x00\x12\x14\n\nbool_value\x18\x04 \x01(\x08H\x00\x12/\n\x0cstruct_value\x18\x05 \x01(\x0b\x32\x17.google.protobuf.StructH\x00\x12\x30\n\nlist_value\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.ListValueH\x00\x42\x06\n\x04kind\"3\n\tListValue\x12&\n\x06values\x18\x01 \x03(\x0b\x32\x16.google.protobuf.Value*\x1b\n\tNullValue\x12\x0e\n\nNULL_VALUE\x10\x00\x42\x7f\n\x13\x63om.google.protobufB\x0bStructProtoP\x01Z/google.golang.org/protobuf/types/known/structpb\xf8\x01\x01\xa2\x02\x03GPB\xaa\x02\x1eGoogle.Protobuf.WellKnownTypesb\x06proto3"
|
|
9
9
|
|
|
10
|
-
pool = Google::Protobuf::DescriptorPool.generated_pool
|
|
10
|
+
pool = ::Google::Protobuf::DescriptorPool.generated_pool
|
|
11
11
|
pool.add_serialized_file(descriptor_data)
|
|
12
12
|
|
|
13
13
|
module Google
|
|
@@ -7,7 +7,7 @@ require 'google/protobuf'
|
|
|
7
7
|
|
|
8
8
|
descriptor_data = "\n\x1fgoogle/protobuf/timestamp.proto\x12\x0fgoogle.protobuf\"+\n\tTimestamp\x12\x0f\n\x07seconds\x18\x01 \x01(\x03\x12\r\n\x05nanos\x18\x02 \x01(\x05\x42\x85\x01\n\x13\x63om.google.protobufB\x0eTimestampProtoP\x01Z2google.golang.org/protobuf/types/known/timestamppb\xf8\x01\x01\xa2\x02\x03GPB\xaa\x02\x1eGoogle.Protobuf.WellKnownTypesb\x06proto3"
|
|
9
9
|
|
|
10
|
-
pool = Google::Protobuf::DescriptorPool.generated_pool
|
|
10
|
+
pool = ::Google::Protobuf::DescriptorPool.generated_pool
|
|
11
11
|
pool.add_serialized_file(descriptor_data)
|
|
12
12
|
|
|
13
13
|
module Google
|
|
@@ -10,7 +10,7 @@ require 'google/protobuf/source_context_pb'
|
|
|
10
10
|
|
|
11
11
|
descriptor_data = "\n\x1agoogle/protobuf/type.proto\x12\x0fgoogle.protobuf\x1a\x19google/protobuf/any.proto\x1a$google/protobuf/source_context.proto\"\xe8\x01\n\x04Type\x12\x0c\n\x04name\x18\x01 \x01(\t\x12&\n\x06\x66ields\x18\x02 \x03(\x0b\x32\x16.google.protobuf.Field\x12\x0e\n\x06oneofs\x18\x03 \x03(\t\x12(\n\x07options\x18\x04 \x03(\x0b\x32\x17.google.protobuf.Option\x12\x36\n\x0esource_context\x18\x05 \x01(\x0b\x32\x1e.google.protobuf.SourceContext\x12\'\n\x06syntax\x18\x06 \x01(\x0e\x32\x17.google.protobuf.Syntax\x12\x0f\n\x07\x65\x64ition\x18\x07 \x01(\t\"\xd5\x05\n\x05\x46ield\x12)\n\x04kind\x18\x01 \x01(\x0e\x32\x1b.google.protobuf.Field.Kind\x12\x37\n\x0b\x63\x61rdinality\x18\x02 \x01(\x0e\x32\".google.protobuf.Field.Cardinality\x12\x0e\n\x06number\x18\x03 \x01(\x05\x12\x0c\n\x04name\x18\x04 \x01(\t\x12\x10\n\x08type_url\x18\x06 \x01(\t\x12\x13\n\x0boneof_index\x18\x07 \x01(\x05\x12\x0e\n\x06packed\x18\x08 \x01(\x08\x12(\n\x07options\x18\t \x03(\x0b\x32\x17.google.protobuf.Option\x12\x11\n\tjson_name\x18\n \x01(\t\x12\x15\n\rdefault_value\x18\x0b \x01(\t\"\xc8\x02\n\x04Kind\x12\x10\n\x0cTYPE_UNKNOWN\x10\x00\x12\x0f\n\x0bTYPE_DOUBLE\x10\x01\x12\x0e\n\nTYPE_FLOAT\x10\x02\x12\x0e\n\nTYPE_INT64\x10\x03\x12\x0f\n\x0bTYPE_UINT64\x10\x04\x12\x0e\n\nTYPE_INT32\x10\x05\x12\x10\n\x0cTYPE_FIXED64\x10\x06\x12\x10\n\x0cTYPE_FIXED32\x10\x07\x12\r\n\tTYPE_BOOL\x10\x08\x12\x0f\n\x0bTYPE_STRING\x10\t\x12\x0e\n\nTYPE_GROUP\x10\n\x12\x10\n\x0cTYPE_MESSAGE\x10\x0b\x12\x0e\n\nTYPE_BYTES\x10\x0c\x12\x0f\n\x0bTYPE_UINT32\x10\r\x12\r\n\tTYPE_ENUM\x10\x0e\x12\x11\n\rTYPE_SFIXED32\x10\x0f\x12\x11\n\rTYPE_SFIXED64\x10\x10\x12\x0f\n\x0bTYPE_SINT32\x10\x11\x12\x0f\n\x0bTYPE_SINT64\x10\x12\"t\n\x0b\x43\x61rdinality\x12\x17\n\x13\x43\x41RDINALITY_UNKNOWN\x10\x00\x12\x18\n\x14\x43\x41RDINALITY_OPTIONAL\x10\x01\x12\x18\n\x14\x43\x41RDINALITY_REQUIRED\x10\x02\x12\x18\n\x14\x43\x41RDINALITY_REPEATED\x10\x03\"\xdf\x01\n\x04\x45num\x12\x0c\n\x04name\x18\x01 \x01(\t\x12-\n\tenumvalue\x18\x02 \x03(\x0b\x32\x1a.google.protobuf.EnumValue\x12(\n\x07options\x18\x03 \x03(\x0b\x32\x17.google.protobuf.Option\x12\x36\n\x0esource_context\x18\x04 \x01(\x0b\x32\x1e.google.protobuf.SourceContext\x12\'\n\x06syntax\x18\x05 \x01(\x0e\x32\x17.google.protobuf.Syntax\x12\x0f\n\x07\x65\x64ition\x18\x06 \x01(\t\"S\n\tEnumValue\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0e\n\x06number\x18\x02 \x01(\x05\x12(\n\x07options\x18\x03 \x03(\x0b\x32\x17.google.protobuf.Option\";\n\x06Option\x12\x0c\n\x04name\x18\x01 \x01(\t\x12#\n\x05value\x18\x02 \x01(\x0b\x32\x14.google.protobuf.Any*C\n\x06Syntax\x12\x11\n\rSYNTAX_PROTO2\x10\x00\x12\x11\n\rSYNTAX_PROTO3\x10\x01\x12\x13\n\x0fSYNTAX_EDITIONS\x10\x02\x42{\n\x13\x63om.google.protobufB\tTypeProtoP\x01Z-google.golang.org/protobuf/types/known/typepb\xf8\x01\x01\xa2\x02\x03GPB\xaa\x02\x1eGoogle.Protobuf.WellKnownTypesb\x06proto3"
|
|
12
12
|
|
|
13
|
-
pool = Google::Protobuf::DescriptorPool.generated_pool
|
|
13
|
+
pool = ::Google::Protobuf::DescriptorPool.generated_pool
|
|
14
14
|
pool.add_serialized_file(descriptor_data)
|
|
15
15
|
|
|
16
16
|
module Google
|
|
@@ -7,7 +7,7 @@ require 'google/protobuf'
|
|
|
7
7
|
|
|
8
8
|
descriptor_data = "\n\x1egoogle/protobuf/wrappers.proto\x12\x0fgoogle.protobuf\"\x1c\n\x0b\x44oubleValue\x12\r\n\x05value\x18\x01 \x01(\x01\"\x1b\n\nFloatValue\x12\r\n\x05value\x18\x01 \x01(\x02\"\x1b\n\nInt64Value\x12\r\n\x05value\x18\x01 \x01(\x03\"\x1c\n\x0bUInt64Value\x12\r\n\x05value\x18\x01 \x01(\x04\"\x1b\n\nInt32Value\x12\r\n\x05value\x18\x01 \x01(\x05\"\x1c\n\x0bUInt32Value\x12\r\n\x05value\x18\x01 \x01(\r\"\x1a\n\tBoolValue\x12\r\n\x05value\x18\x01 \x01(\x08\"\x1c\n\x0bStringValue\x12\r\n\x05value\x18\x01 \x01(\t\"\x1b\n\nBytesValue\x12\r\n\x05value\x18\x01 \x01(\x0c\x42\x83\x01\n\x13\x63om.google.protobufB\rWrappersProtoP\x01Z1google.golang.org/protobuf/types/known/wrapperspb\xf8\x01\x01\xa2\x02\x03GPB\xaa\x02\x1eGoogle.Protobuf.WellKnownTypesb\x06proto3"
|
|
9
9
|
|
|
10
|
-
pool = Google::Protobuf::DescriptorPool.generated_pool
|
|
10
|
+
pool = ::Google::Protobuf::DescriptorPool.generated_pool
|
|
11
11
|
pool.add_serialized_file(descriptor_data)
|
|
12
12
|
|
|
13
13
|
module Google
|
data/lib/google/protobuf_ffi.rb
CHANGED
|
@@ -17,8 +17,8 @@ require 'google/protobuf/ffi/field_descriptor'
|
|
|
17
17
|
require 'google/protobuf/ffi/oneof_descriptor'
|
|
18
18
|
require 'google/protobuf/ffi/method_descriptor'
|
|
19
19
|
require 'google/protobuf/ffi/service_descriptor'
|
|
20
|
-
require 'google/protobuf/ffi/descriptor_pool'
|
|
21
20
|
require 'google/protobuf/ffi/file_descriptor'
|
|
21
|
+
require 'google/protobuf/ffi/descriptor_pool'
|
|
22
22
|
require 'google/protobuf/ffi/map'
|
|
23
23
|
require 'google/protobuf/ffi/object_cache'
|
|
24
24
|
require 'google/protobuf/ffi/repeated_field'
|
|
@@ -42,7 +42,8 @@ module Google
|
|
|
42
42
|
def self.discard_unknown(message)
|
|
43
43
|
raise FrozenError if message.frozen?
|
|
44
44
|
raise ArgumentError.new "Expected message, got #{message.class} instead." if message.instance_variable_get(:@msg).nil?
|
|
45
|
-
|
|
45
|
+
pool_def = message.class.descriptor.instance_variable_get(:@descriptor_pool).descriptor_pool
|
|
46
|
+
unless Google::Protobuf::FFI.message_discard_unknown(message.instance_variable_get(:@msg), message.class.descriptor, pool_def, 128)
|
|
46
47
|
raise RuntimeError.new "Messages nested too deeply."
|
|
47
48
|
end
|
|
48
49
|
nil
|
data/lib/google/tasks/ffi.rake
CHANGED
|
@@ -12,7 +12,7 @@ def configure_common_compile_task(task)
|
|
|
12
12
|
task.add_define 'NDEBUG'
|
|
13
13
|
task.cflags << "-std=gnu99 -O3"
|
|
14
14
|
[
|
|
15
|
-
:convert, :defs, :map, :message, :protobuf, :repeated_field
|
|
15
|
+
:convert, :defs, :map, :message, :protobuf, :repeated_field
|
|
16
16
|
].each { |file| task.exclude << "/#{file}.c" }
|
|
17
17
|
task.ext_dir = src_dir
|
|
18
18
|
task.source_dirs = [src_dir]
|
metadata
CHANGED
|
@@ -1,29 +1,15 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: google-protobuf
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 4.
|
|
4
|
+
version: 4.35.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Protobuf Authors
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2026-06-11 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
|
-
- !ruby/object:Gem::Dependency
|
|
14
|
-
name: rake-compiler-dock
|
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
|
16
|
-
requirements:
|
|
17
|
-
- - '='
|
|
18
|
-
- !ruby/object:Gem::Version
|
|
19
|
-
version: 1.2.1
|
|
20
|
-
type: :development
|
|
21
|
-
prerelease: false
|
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
23
|
-
requirements:
|
|
24
|
-
- - '='
|
|
25
|
-
- !ruby/object:Gem::Version
|
|
26
|
-
version: 1.2.1
|
|
27
13
|
- !ruby/object:Gem::Dependency
|
|
28
14
|
name: bigdecimal
|
|
29
15
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -42,16 +28,16 @@ dependencies:
|
|
|
42
28
|
name: rake
|
|
43
29
|
requirement: !ruby/object:Gem::Requirement
|
|
44
30
|
requirements:
|
|
45
|
-
- - "
|
|
31
|
+
- - "~>"
|
|
46
32
|
- !ruby/object:Gem::Version
|
|
47
|
-
version: '13'
|
|
33
|
+
version: '13.3'
|
|
48
34
|
type: :runtime
|
|
49
35
|
prerelease: false
|
|
50
36
|
version_requirements: !ruby/object:Gem::Requirement
|
|
51
37
|
requirements:
|
|
52
|
-
- - "
|
|
38
|
+
- - "~>"
|
|
53
39
|
- !ruby/object:Gem::Version
|
|
54
|
-
version: '13'
|
|
40
|
+
version: '13.3'
|
|
55
41
|
- !ruby/object:Gem::Dependency
|
|
56
42
|
name: ffi
|
|
57
43
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -86,34 +72,42 @@ dependencies:
|
|
|
86
72
|
requirements:
|
|
87
73
|
- - "~>"
|
|
88
74
|
- !ruby/object:Gem::Version
|
|
89
|
-
version: 1.
|
|
75
|
+
version: '1.3'
|
|
90
76
|
type: :development
|
|
91
77
|
prerelease: false
|
|
92
78
|
version_requirements: !ruby/object:Gem::Requirement
|
|
93
79
|
requirements:
|
|
94
80
|
- - "~>"
|
|
95
81
|
- !ruby/object:Gem::Version
|
|
96
|
-
version: 1.
|
|
82
|
+
version: '1.3'
|
|
97
83
|
- !ruby/object:Gem::Dependency
|
|
98
|
-
name:
|
|
84
|
+
name: rake-compiler-dock
|
|
99
85
|
requirement: !ruby/object:Gem::Requirement
|
|
100
86
|
requirements:
|
|
101
87
|
- - "~>"
|
|
102
88
|
- !ruby/object:Gem::Version
|
|
103
|
-
version: '
|
|
104
|
-
- - ">="
|
|
105
|
-
- !ruby/object:Gem::Version
|
|
106
|
-
version: 3.0.9
|
|
89
|
+
version: '1.11'
|
|
107
90
|
type: :development
|
|
108
91
|
prerelease: false
|
|
109
92
|
version_requirements: !ruby/object:Gem::Requirement
|
|
110
93
|
requirements:
|
|
111
94
|
- - "~>"
|
|
112
95
|
- !ruby/object:Gem::Version
|
|
113
|
-
version: '
|
|
114
|
-
|
|
96
|
+
version: '1.11'
|
|
97
|
+
- !ruby/object:Gem::Dependency
|
|
98
|
+
name: test-unit
|
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
|
100
|
+
requirements:
|
|
101
|
+
- - "~>"
|
|
102
|
+
- !ruby/object:Gem::Version
|
|
103
|
+
version: '3.7'
|
|
104
|
+
type: :development
|
|
105
|
+
prerelease: false
|
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
107
|
+
requirements:
|
|
108
|
+
- - "~>"
|
|
115
109
|
- !ruby/object:Gem::Version
|
|
116
|
-
version: 3.
|
|
110
|
+
version: '3.7'
|
|
117
111
|
description: Protocol Buffers are Google's data interchange format.
|
|
118
112
|
email: protobuf@googlegroups.com
|
|
119
113
|
executables: []
|
|
@@ -146,7 +140,8 @@ files:
|
|
|
146
140
|
- ext/google/protobuf_c/third_party/utf8_range/LICENSE
|
|
147
141
|
- ext/google/protobuf_c/third_party/utf8_range/utf8_range.c
|
|
148
142
|
- ext/google/protobuf_c/third_party/utf8_range/utf8_range.h
|
|
149
|
-
- ext/google/protobuf_c/
|
|
143
|
+
- ext/google/protobuf_c/third_party/utf8_range/utf8_range_neon.inc
|
|
144
|
+
- ext/google/protobuf_c/third_party/utf8_range/utf8_range_sse.inc
|
|
150
145
|
- lib/google/protobuf.rb
|
|
151
146
|
- lib/google/protobuf/any_pb.rb
|
|
152
147
|
- lib/google/protobuf/api_pb.rb
|
|
@@ -188,7 +183,7 @@ homepage: https://developers.google.com/protocol-buffers
|
|
|
188
183
|
licenses:
|
|
189
184
|
- BSD-3-Clause
|
|
190
185
|
metadata:
|
|
191
|
-
source_code_uri: https://github.com/protocolbuffers/protobuf/tree/v4.
|
|
186
|
+
source_code_uri: https://github.com/protocolbuffers/protobuf/tree/v4.35.1/ruby
|
|
192
187
|
post_install_message:
|
|
193
188
|
rdoc_options: []
|
|
194
189
|
require_paths:
|
|
@@ -197,14 +192,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
197
192
|
requirements:
|
|
198
193
|
- - ">="
|
|
199
194
|
- !ruby/object:Gem::Version
|
|
200
|
-
version: '3.
|
|
195
|
+
version: '3.1'
|
|
201
196
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
202
197
|
requirements:
|
|
203
198
|
- - ">="
|
|
204
199
|
- !ruby/object:Gem::Version
|
|
205
200
|
version: '0'
|
|
206
201
|
requirements: []
|
|
207
|
-
rubygems_version: 3.
|
|
202
|
+
rubygems_version: 3.3.27
|
|
208
203
|
signing_key:
|
|
209
204
|
specification_version: 4
|
|
210
205
|
summary: Protocol Buffers
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
// Protocol Buffers - Google's data interchange format
|
|
2
|
-
// Copyright 2017 Google Inc. All rights reserved.
|
|
3
|
-
//
|
|
4
|
-
// Use of this source code is governed by a BSD-style
|
|
5
|
-
// license that can be found in the LICENSE file or at
|
|
6
|
-
// https://developers.google.com/open-source/licenses/bsd
|
|
7
|
-
|
|
8
|
-
#include <string.h>
|
|
9
|
-
|
|
10
|
-
// On x86-64 Linux with glibc, we link against the 2.2.5 version of memcpy so
|
|
11
|
-
// that we avoid depending on the 2.14 version of the symbol. This way,
|
|
12
|
-
// distributions that are using pre-2.14 versions of glibc can successfully use
|
|
13
|
-
// the gem we distribute
|
|
14
|
-
// (https://github.com/protocolbuffers/protobuf/issues/2783).
|
|
15
|
-
//
|
|
16
|
-
// This wrapper is enabled by passing the linker flags -Wl,-wrap,memcpy in
|
|
17
|
-
// extconf.rb.
|
|
18
|
-
#ifdef __linux__
|
|
19
|
-
#if defined(__x86_64__) && defined(__GNU_LIBRARY__)
|
|
20
|
-
__asm__(".symver memcpy,memcpy@GLIBC_2.2.5");
|
|
21
|
-
void *__wrap_memcpy(void *dest, const void *src, size_t n) {
|
|
22
|
-
return memcpy(dest, src, n);
|
|
23
|
-
}
|
|
24
|
-
#else
|
|
25
|
-
void *__wrap_memcpy(void *dest, const void *src, size_t n) {
|
|
26
|
-
return memmove(dest, src, n);
|
|
27
|
-
}
|
|
28
|
-
#endif
|
|
29
|
-
#endif
|