google-protobuf 3.16.0-x86-linux → 3.17.0.rc.1-x86-linux

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.

Potentially problematic release.


This version of google-protobuf might be problematic. Click here for more details.

checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 29f60032807985a53cef469e79baf1095b01d504ee136711a72aa5ee479b501c
4
- data.tar.gz: 545af028849a0dd3b74ab76d75fe5ff44be57acb98bb42c1ce2be3080efbb2c7
3
+ metadata.gz: 131b3316a33ae49fbe3a0fbc4cd254e58b36e0f911fb812d071641e75cdce338
4
+ data.tar.gz: 1c5393625f365c6a32be48b8c67e71a4e7858aab9fc09701b7e4d05eb9de1bf4
5
5
  SHA512:
6
- metadata.gz: e1d2fa037530cd6576ec9db23228de4c272396bbfcfec992159f441161222eb01a64e53a8efa8e18a60f45677f678203d83fa30245d78f352c6ce1077e32dd2b
7
- data.tar.gz: 7160cc2abc645e1c38184f01459c44500c212e9e8f82f702d1179a63fdde6418e3a708c862f92db359e47ca57fcdc96ec6c26b4825fbce98b180f5ae80574769
6
+ metadata.gz: f89a9f138ab182a909b4dc9eb174f79e142f7464eb3376f463c0dbb37e7f1a761770d0e2ef9cdeb076d92033668891531e8c8c5f9f44e181e4018a710fef557a
7
+ data.tar.gz: 1a957844561318097d3dff513a948c4fb673b67888c209dff063f46afa512d90638312babda41faf83ebdfe72e8d846b30301a8e7698afbd832801efe3c53bab
@@ -17,4 +17,5 @@ end
17
17
  $objs = ["protobuf.o", "convert.o", "defs.o", "message.o",
18
18
  "repeated_field.o", "map.o", "ruby-upb.o", "wrap_memcpy.o"]
19
19
 
20
+ find_header('third_party/wyhash/wyhash.h', '../../../..')
20
21
  create_makefile("google/protobuf_c")
@@ -734,7 +734,10 @@ uint64_t Message_Hash(const upb_msg* msg, const upb_msgdef* m, uint64_t seed) {
734
734
  */
735
735
  static VALUE Message_hash(VALUE _self) {
736
736
  Message* self = ruby_to_Message(_self);
737
- return INT2FIX(Message_Hash(self->msg, self->msgdef, 0));
737
+ uint64_t hash_value = Message_Hash(self->msg, self->msgdef, 0);
738
+ // RUBY_FIXNUM_MAX should be one less than a power of 2.
739
+ assert((RUBY_FIXNUM_MAX & (RUBY_FIXNUM_MAX + 1)) == 0);
740
+ return INT2FIX(hash_value & RUBY_FIXNUM_MAX);
738
741
  }
739
742
 
740
743
  /*
@@ -238,8 +238,16 @@ void Arena_register(VALUE module) {
238
238
  // We use WeakMap for the cache. For Ruby <2.7 we also need a secondary Hash
239
239
  // to store WeakMap keys because Ruby <2.7 WeakMap doesn't allow non-finalizable
240
240
  // keys.
241
-
242
- #if RUBY_API_VERSION_CODE >= 20700
241
+ //
242
+ // We also need the secondary Hash if sizeof(long) < sizeof(VALUE), because this
243
+ // means it may not be possible to fit a pointer into a Fixnum. Keys are
244
+ // pointers, and if they fit into a Fixnum, Ruby doesn't collect them, but if
245
+ // they overflow and require allocating a Bignum, they could get collected
246
+ // prematurely, thus removing the cache entry. This happens on 64-bit Windows,
247
+ // on which pointers are 64 bits but longs are 32 bits. In this case, we enable
248
+ // the secondary Hash to hold the keys and prevent them from being collected.
249
+
250
+ #if RUBY_API_VERSION_CODE >= 20700 && SIZEOF_LONG >= SIZEOF_VALUE
243
251
  #define USE_SECONDARY_MAP 0
244
252
  #else
245
253
  #define USE_SECONDARY_MAP 1
@@ -326,7 +334,7 @@ static VALUE SecondaryMap_Get(VALUE key, bool create) {
326
334
  VALUE ret = rb_hash_lookup(secondary_map, key);
327
335
  if (ret == Qnil && create) {
328
336
  SecondaryMap_MaybeGC();
329
- ret = rb_eval_string("Object.new");
337
+ ret = rb_class_new_instance(0, NULL, rb_cObject);
330
338
  rb_hash_aset(secondary_map, key, ret);
331
339
  }
332
340
  return ret;
@@ -336,11 +344,9 @@ static VALUE SecondaryMap_Get(VALUE key, bool create) {
336
344
 
337
345
  // Requires: secondary_map_mutex is held by this thread iff create == true.
338
346
  static VALUE ObjectCache_GetKey(const void* key, bool create) {
339
- char buf[sizeof(key)];
340
- memcpy(&buf, &key, sizeof(key));
341
- intptr_t key_int = (intptr_t)key;
342
- PBRUBY_ASSERT((key_int & 3) == 0);
343
- VALUE ret = LL2NUM(key_int >> 2);
347
+ VALUE key_val = (VALUE)key;
348
+ PBRUBY_ASSERT((key_val & 3) == 0);
349
+ VALUE ret = LL2NUM(key_val >> 2);
344
350
  #if USE_SECONDARY_MAP
345
351
  ret = SecondaryMap_Get(ret, create);
346
352
  #endif
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: google-protobuf
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.16.0
4
+ version: 3.17.0.rc.1
5
5
  platform: x86-linux
6
6
  authors:
7
7
  - Protobuf Authors
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-05-06 00:00:00.000000000 Z
11
+ date: 2021-05-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake-compiler-dock
@@ -128,7 +128,7 @@ homepage: https://developers.google.com/protocol-buffers
128
128
  licenses:
129
129
  - BSD-3-Clause
130
130
  metadata:
131
- source_code_uri: https://github.com/protocolbuffers/protobuf/tree/v3.16.0/ruby
131
+ source_code_uri: https://github.com/protocolbuffers/protobuf/tree/v3.17.0-rc1/ruby
132
132
  post_install_message:
133
133
  rdoc_options: []
134
134
  require_paths:
@@ -143,9 +143,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
143
143
  version: 3.1.dev
144
144
  required_rubygems_version: !ruby/object:Gem::Requirement
145
145
  requirements:
146
- - - ">="
146
+ - - ">"
147
147
  - !ruby/object:Gem::Version
148
- version: '0'
148
+ version: 1.3.1
149
149
  requirements: []
150
150
  rubygems_version: 3.2.3
151
151
  signing_key: