google-protobuf 4.29.3 → 4.33.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.
Files changed (45) hide show
  1. checksums.yaml +4 -4
  2. data/ext/google/protobuf_c/convert.c +3 -10
  3. data/ext/google/protobuf_c/defs.c +469 -130
  4. data/ext/google/protobuf_c/extconf.rb +20 -10
  5. data/ext/google/protobuf_c/glue.c +63 -0
  6. data/ext/google/protobuf_c/map.c +76 -39
  7. data/ext/google/protobuf_c/message.c +96 -62
  8. data/ext/google/protobuf_c/protobuf.c +3 -2
  9. data/ext/google/protobuf_c/protobuf.h +0 -8
  10. data/ext/google/protobuf_c/repeated_field.c +75 -38
  11. data/ext/google/protobuf_c/ruby-upb.c +14055 -13540
  12. data/ext/google/protobuf_c/ruby-upb.h +4343 -2827
  13. data/ext/google/protobuf_c/third_party/utf8_range/utf8_range.c +21 -281
  14. data/ext/google/protobuf_c/third_party/utf8_range/utf8_range_neon.inc +117 -0
  15. data/ext/google/protobuf_c/third_party/utf8_range/utf8_range_sse.inc +272 -0
  16. data/lib/google/protobuf/any_pb.rb +1 -1
  17. data/lib/google/protobuf/api_pb.rb +2 -2
  18. data/lib/google/protobuf/descriptor_pb.rb +6 -2
  19. data/lib/google/protobuf/duration_pb.rb +1 -1
  20. data/lib/google/protobuf/empty_pb.rb +1 -1
  21. data/lib/google/protobuf/ffi/descriptor.rb +10 -0
  22. data/lib/google/protobuf/ffi/descriptor_pool.rb +3 -1
  23. data/lib/google/protobuf/ffi/enum_descriptor.rb +10 -0
  24. data/lib/google/protobuf/ffi/ffi.rb +0 -1
  25. data/lib/google/protobuf/ffi/field_descriptor.rb +16 -0
  26. data/lib/google/protobuf/ffi/file_descriptor.rb +36 -0
  27. data/lib/google/protobuf/ffi/internal/convert.rb +1 -5
  28. data/lib/google/protobuf/ffi/internal/pointer_helper.rb +2 -1
  29. data/lib/google/protobuf/ffi/map.rb +2 -2
  30. data/lib/google/protobuf/ffi/message.rb +2 -4
  31. data/lib/google/protobuf/ffi/method_descriptor.rb +11 -1
  32. data/lib/google/protobuf/ffi/oneof_descriptor.rb +10 -0
  33. data/lib/google/protobuf/ffi/service_descriptor.rb +11 -1
  34. data/lib/google/protobuf/field_mask_pb.rb +1 -1
  35. data/lib/google/protobuf/message_exts.rb +4 -0
  36. data/lib/google/protobuf/plugin_pb.rb +1 -1
  37. data/lib/google/protobuf/source_context_pb.rb +1 -1
  38. data/lib/google/protobuf/struct_pb.rb +1 -1
  39. data/lib/google/protobuf/timestamp_pb.rb +1 -1
  40. data/lib/google/protobuf/type_pb.rb +1 -1
  41. data/lib/google/protobuf/wrappers_pb.rb +1 -1
  42. data/lib/google/protobuf_ffi.rb +3 -2
  43. data/lib/google/tasks/ffi.rake +1 -1
  44. metadata +23 -22
  45. data/ext/google/protobuf_c/wrap_memcpy.c +0 -29
@@ -232,8 +232,8 @@ module Google
232
232
  def hash
233
233
  return_value = 0
234
234
  each_msg_val do |key_message_value, value_message_value|
235
- return_value = Google::Protobuf::FFI.message_value_hash(key_message_value, key_type, nil, return_value)
236
- return_value = Google::Protobuf::FFI.message_value_hash(value_message_value, value_type, descriptor, return_value)
235
+ return_value += Google::Protobuf::FFI.message_value_hash(key_message_value, key_type, nil, 0)
236
+ return_value += Google::Protobuf::FFI.message_value_hash(value_message_value, value_type, descriptor, 0)
237
237
  end
238
238
  return_value
239
239
  end
@@ -22,7 +22,7 @@ module Google
22
22
  attach_function :decode_message, :upb_Decode, [:binary_string, :size_t, :Message, MiniTable.by_ref, :ExtensionRegistry, :int, Internal::Arena], DecodeStatus
23
23
  attach_function :get_mutable_message, :upb_Message_Mutable, [:Message, FieldDescriptor, Internal::Arena], MutableMessageValue.by_value
24
24
  attach_function :get_message_which_oneof, :upb_Message_WhichOneofByDef, [:Message, OneofDescriptor], FieldDescriptor
25
- attach_function :message_discard_unknown, :upb_Message_DiscardUnknown, [:Message, Descriptor, :int], :bool
25
+ attach_function :message_discard_unknown, :upb_Message_DiscardUnknown, [:Message, Descriptor, :DefPool, :int], :bool
26
26
  attach_function :message_next, :upb_Message_Next, [:Message, Descriptor, :DefPool, :FieldDefPointer, MessageValue.by_ref, :pointer], :bool
27
27
  attach_function :message_freeze, :upb_Message_Freeze, [:Message, MiniTable.by_ref], :void
28
28
  attach_function :message_frozen?, :upb_Message_IsFrozen, [:Message], :bool
@@ -254,7 +254,7 @@ module Google
254
254
  decoding_options = 0
255
255
  unless options.is_a? Hash
256
256
  if options.respond_to? :to_h
257
- options options.to_h
257
+ options = options.to_h
258
258
  else
259
259
  #TODO can this error message be improve to include what was received?
260
260
  raise ArgumentError.new "Expected hash arguments"
@@ -272,8 +272,6 @@ module Google
272
272
  status = Google::Protobuf::FFI::Status.new
273
273
  result = Google::Protobuf::FFI.json_decode_message_detecting_nonconformance(data, data.bytesize, message.instance_variable_get(:@msg), message.class.descriptor, pool_def, decoding_options, message.instance_variable_get(:@arena), status)
274
274
  case result
275
- when Google::Protobuf::FFI::Upb_JsonDecodeResult_OkWithEmptyStringNumerics
276
- warn Google::Protobuf::FFI.error_message(status)
277
275
  when Google::Protobuf::FFI::Upb_JsonDecodeResult_Error
278
276
  raise ParseError.new "Error occurred during parsing: #{Google::Protobuf::FFI.error_message(status)}"
279
277
  end
@@ -7,7 +7,7 @@
7
7
 
8
8
  module Google
9
9
  module Protobuf
10
- class MethodDescriptor
10
+ class MethodDescriptor
11
11
  attr :method_def, :descriptor_pool
12
12
 
13
13
  include Google::Protobuf::Internal::Convert
@@ -81,6 +81,15 @@ module Google
81
81
  @server_streaming ||= Google::Protobuf::FFI.method_server_streaming(self)
82
82
  end
83
83
 
84
+ def to_proto
85
+ @to_proto ||= begin
86
+ size_ptr = ::FFI::MemoryPointer.new(:size_t, 1)
87
+ temporary_arena = Google::Protobuf::FFI.create_arena
88
+ buffer = Google::Protobuf::FFI.method_to_proto(self, size_ptr, temporary_arena)
89
+ Google::Protobuf::MethodDescriptorProto.decode(buffer.read_string_length(size_ptr.read(:size_t)).force_encoding("ASCII-8BIT").freeze)
90
+ end
91
+ end
92
+
84
93
  private
85
94
 
86
95
  def initialize(method_def, descriptor_pool)
@@ -108,6 +117,7 @@ module Google
108
117
  attach_function :method_output_type, :upb_MethodDef_OutputType, [MethodDescriptor], Descriptor
109
118
  attach_function :method_client_streaming, :upb_MethodDef_ClientStreaming, [MethodDescriptor], :bool
110
119
  attach_function :method_server_streaming, :upb_MethodDef_ServerStreaming, [MethodDescriptor], :bool
120
+ attach_function :method_to_proto, :MethodDescriptor_serialized_to_proto, [MethodDescriptor, :pointer, Internal::Arena], :pointer
111
121
  end
112
122
  end
113
123
  end
@@ -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
@@ -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
@@ -25,6 +25,10 @@ module Google
25
25
  self.class.encode(self, options)
26
26
  end
27
27
 
28
+ def to_hash
29
+ self.to_h
30
+ end
31
+
28
32
  end
29
33
  class AbstractMessage
30
34
  include MessageExts
@@ -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
@@ -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
- unless Google::Protobuf::FFI.message_discard_unknown(message.instance_variable_get(:@msg), message.class.descriptor, 128)
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
@@ -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, :wrap_memcpy
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.29.3
4
+ version: 4.33.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: 2025-01-08 00:00:00.000000000 Z
11
+ date: 2025-11-12 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
@@ -86,14 +72,28 @@ dependencies:
86
72
  requirements:
87
73
  - - "~>"
88
74
  - !ruby/object:Gem::Version
89
- version: 1.1.0
75
+ version: '1.2'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '1.2'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rake-compiler-dock
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '1.9'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: 1.1.0
96
+ version: '1.9'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: test-unit
99
99
  requirement: !ruby/object:Gem::Requirement
@@ -146,7 +146,8 @@ files:
146
146
  - ext/google/protobuf_c/third_party/utf8_range/LICENSE
147
147
  - ext/google/protobuf_c/third_party/utf8_range/utf8_range.c
148
148
  - ext/google/protobuf_c/third_party/utf8_range/utf8_range.h
149
- - ext/google/protobuf_c/wrap_memcpy.c
149
+ - ext/google/protobuf_c/third_party/utf8_range/utf8_range_neon.inc
150
+ - ext/google/protobuf_c/third_party/utf8_range/utf8_range_sse.inc
150
151
  - lib/google/protobuf.rb
151
152
  - lib/google/protobuf/any_pb.rb
152
153
  - lib/google/protobuf/api_pb.rb
@@ -188,7 +189,7 @@ homepage: https://developers.google.com/protocol-buffers
188
189
  licenses:
189
190
  - BSD-3-Clause
190
191
  metadata:
191
- source_code_uri: https://github.com/protocolbuffers/protobuf/tree/v4.29.3/ruby
192
+ source_code_uri: https://github.com/protocolbuffers/protobuf/tree/v4.33.1/ruby
192
193
  post_install_message:
193
194
  rdoc_options: []
194
195
  require_paths:
@@ -197,14 +198,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
197
198
  requirements:
198
199
  - - ">="
199
200
  - !ruby/object:Gem::Version
200
- version: '3.0'
201
+ version: '3.1'
201
202
  required_rubygems_version: !ruby/object:Gem::Requirement
202
203
  requirements:
203
204
  - - ">="
204
205
  - !ruby/object:Gem::Version
205
206
  version: '0'
206
207
  requirements: []
207
- rubygems_version: 3.0.8
208
+ rubygems_version: 3.5.16
208
209
  signing_key:
209
210
  specification_version: 4
210
211
  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