google-protobuf 3.16.0 → 3.17.0.rc.1

Sign up to get free protection for your applications and to get access to all the features.

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: 92bce6793f49890e0a5bf68cc233de1e6fea67d72f3ca7f335bee1bcb81061a3
4
- data.tar.gz: '008e84cf532d86eb4ee6bb4a913be6d75fdffd18190759acf57ef0133e33989b'
3
+ metadata.gz: d3d2d10c514b579b029de2cc0d56a82e53996d4ec4aaa7b2cede1d6d7dbb8fff
4
+ data.tar.gz: 4e5b41ae978108c953a2611516a30ae7537cd0889ec99de05e5298f926af717c
5
5
  SHA512:
6
- metadata.gz: 7869abdbcc35d74152ed52fae04a763bd866a8b04cd2eb212f07ba37cf83bb92ac2fdaa4a06d4aa9dcf55c6ac6d13e0ecb0be3fc724947f5233a84e12180263d
7
- data.tar.gz: 1d735c91494688d289c57852f7d7b4e015394851bad5fa7ddaf4ba3f5f6dd0395fd8b549c0bf5106ad370a7d324b876b66f3fe94fad8f0d4d2945d3f68d3aaed
6
+ metadata.gz: fa7bfb61a5ef23340bbb3d44afe9b2e635783dc178d4682e1a9e3c867510caf63266de07a1007fd3627e6185cecb22f5dfd3ccf53519ae4cfe57badc0a88aba0
7
+ data.tar.gz: 4465651eecf2451db63b5fe2ba4ed0812af737bb98d32b30825b049203afd7b09588bd28cec48bc81983930e988de054b94fd779c3b5c4f3e03d898ac1da490f
@@ -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
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: ruby
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
@@ -123,7 +123,7 @@ homepage: https://developers.google.com/protocol-buffers
123
123
  licenses:
124
124
  - BSD-3-Clause
125
125
  metadata:
126
- source_code_uri: https://github.com/protocolbuffers/protobuf/tree/v3.16.0/ruby
126
+ source_code_uri: https://github.com/protocolbuffers/protobuf/tree/v3.17.0-rc1/ruby
127
127
  post_install_message:
128
128
  rdoc_options: []
129
129
  require_paths:
@@ -135,9 +135,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
135
135
  version: '2.3'
136
136
  required_rubygems_version: !ruby/object:Gem::Requirement
137
137
  requirements:
138
- - - ">="
138
+ - - ">"
139
139
  - !ruby/object:Gem::Version
140
- version: '0'
140
+ version: 1.3.1
141
141
  requirements: []
142
142
  rubygems_version: 3.2.17
143
143
  signing_key: