google-protobuf 3.16.0 → 3.17.0.rc.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/extconf.rb +1 -0
- data/ext/google/protobuf_c/message.c +4 -1
- data/ext/google/protobuf_c/protobuf.c +14 -8
- metadata +5 -5
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: d3d2d10c514b579b029de2cc0d56a82e53996d4ec4aaa7b2cede1d6d7dbb8fff
|
|
4
|
+
data.tar.gz: 4e5b41ae978108c953a2611516a30ae7537cd0889ec99de05e5298f926af717c
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: fa7bfb61a5ef23340bbb3d44afe9b2e635783dc178d4682e1a9e3c867510caf63266de07a1007fd3627e6185cecb22f5dfd3ccf53519ae4cfe57badc0a88aba0
|
|
7
|
+
data.tar.gz: 4465651eecf2451db63b5fe2ba4ed0812af737bb98d32b30825b049203afd7b09588bd28cec48bc81983930e988de054b94fd779c3b5c4f3e03d898ac1da490f
|
|
@@ -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
|
-
|
|
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
|
-
|
|
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 =
|
|
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
|
-
|
|
340
|
-
|
|
341
|
-
|
|
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.
|
|
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-
|
|
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.
|
|
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:
|
|
140
|
+
version: 1.3.1
|
|
141
141
|
requirements: []
|
|
142
142
|
rubygems_version: 3.2.17
|
|
143
143
|
signing_key:
|