google-protobuf 3.16.0.rc.1-x86-mingw32 → 3.17.0-x86-mingw32
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 +4 -4
- data/ext/google/protobuf_c/defs.c +35 -8
- 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 +15 -8
- data/lib/google/2.3/protobuf_c.so +0 -0
- data/lib/google/2.4/protobuf_c.so +0 -0
- data/lib/google/2.5/protobuf_c.so +0 -0
- data/lib/google/2.6/protobuf_c.so +0 -0
- data/lib/google/2.7/protobuf_c.so +0 -0
- data/lib/google/3.0/protobuf_c.so +0 -0
- 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: f980ecc6eb4f33e3a319b3eb76f3a99e77b932593ad05366de6ef3556ac3502a
|
4
|
+
data.tar.gz: e3ca3bfa9fe624544772b6723d0e37e9bfe4ff85dffe1105a0c466dcc45312b2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 114cbfee8d7db335ce642d7efbfba96db4a12c9c61dff2946fa8cfad222951b902a0a469b2b966087de73aadbddd5c3b15e00773a51c30cb58afb401f1d2beec
|
7
|
+
data.tar.gz: 12e15f4eacbf9186d54120326246fba27f93e404cc982865df4b07d95a15a8df0cc8895c8f2a22e35588686dbc6a653d940c11a20b9dfec8639c3123268b15f6
|
@@ -868,6 +868,20 @@ static VALUE FieldDescriptor_default(VALUE _self) {
|
|
868
868
|
return Convert_UpbToRuby(default_val, TypeInfo_get(self->fielddef), Qnil);
|
869
869
|
}
|
870
870
|
|
871
|
+
|
872
|
+
/*
|
873
|
+
* call-seq:
|
874
|
+
* FieldDescriptor.json_name => json_name
|
875
|
+
*
|
876
|
+
* Returns this field's json_name, as a Ruby string, or nil if not yet set.
|
877
|
+
*/
|
878
|
+
static VALUE FieldDescriptor_json_name(VALUE _self) {
|
879
|
+
FieldDescriptor* self = ruby_to_FieldDescriptor(_self);
|
880
|
+
const upb_fielddef *f = self->fielddef;
|
881
|
+
const char *json_name = upb_fielddef_jsonname(f);
|
882
|
+
return rb_str_new2(json_name);
|
883
|
+
}
|
884
|
+
|
871
885
|
/*
|
872
886
|
* call-seq:
|
873
887
|
* FieldDescriptor.label => label
|
@@ -1043,6 +1057,7 @@ static void FieldDescriptor_register(VALUE module) {
|
|
1043
1057
|
rb_define_method(klass, "name", FieldDescriptor_name, 0);
|
1044
1058
|
rb_define_method(klass, "type", FieldDescriptor__type, 0);
|
1045
1059
|
rb_define_method(klass, "default", FieldDescriptor_default, 0);
|
1060
|
+
rb_define_method(klass, "json_name", FieldDescriptor_json_name, 0);
|
1046
1061
|
rb_define_method(klass, "label", FieldDescriptor_label, 0);
|
1047
1062
|
rb_define_method(klass, "number", FieldDescriptor_number, 0);
|
1048
1063
|
rb_define_method(klass, "submsg_name", FieldDescriptor_submsg_name, 0);
|
@@ -1750,6 +1765,16 @@ static void msgdef_add_field(VALUE msgbuilder_rb, upb_label_t label, VALUE name,
|
|
1750
1765
|
field_proto,
|
1751
1766
|
FileBuilderContext_strdup(self->file_builder, default_value));
|
1752
1767
|
}
|
1768
|
+
|
1769
|
+
if (rb_funcall(options, rb_intern("key?"), 1,
|
1770
|
+
ID2SYM(rb_intern("json_name"))) == Qtrue) {
|
1771
|
+
VALUE json_name =
|
1772
|
+
rb_hash_lookup(options, ID2SYM(rb_intern("json_name")));
|
1773
|
+
|
1774
|
+
google_protobuf_FieldDescriptorProto_set_json_name(
|
1775
|
+
field_proto,
|
1776
|
+
FileBuilderContext_strdup(self->file_builder, json_name));
|
1777
|
+
}
|
1753
1778
|
}
|
1754
1779
|
|
1755
1780
|
if (oneof_index >= 0) {
|
@@ -1899,18 +1924,20 @@ static VALUE MessageBuilderContext_required(int argc, VALUE* argv,
|
|
1899
1924
|
*/
|
1900
1925
|
static VALUE MessageBuilderContext_repeated(int argc, VALUE* argv,
|
1901
1926
|
VALUE _self) {
|
1902
|
-
VALUE name, type, number
|
1927
|
+
VALUE name, type, number;
|
1928
|
+
VALUE type_class, options = Qnil;
|
1903
1929
|
|
1904
|
-
|
1905
|
-
|
1930
|
+
rb_scan_args(argc, argv, "32", &name, &type, &number, &type_class, &options);
|
1931
|
+
|
1932
|
+
// Allow passing (name, type, number, options) or
|
1933
|
+
// (name, type, number, type_class, options)
|
1934
|
+
if (argc == 4 && RB_TYPE_P(type_class, T_HASH)) {
|
1935
|
+
options = type_class;
|
1936
|
+
type_class = Qnil;
|
1906
1937
|
}
|
1907
|
-
name = argv[0];
|
1908
|
-
type = argv[1];
|
1909
|
-
number = argv[2];
|
1910
|
-
type_class = (argc > 3) ? argv[3] : Qnil;
|
1911
1938
|
|
1912
1939
|
msgdef_add_field(_self, UPB_LABEL_REPEATED, name, type, number, type_class,
|
1913
|
-
|
1940
|
+
options, -1, false);
|
1914
1941
|
|
1915
1942
|
return Qnil;
|
1916
1943
|
}
|
@@ -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
|
/*
|
@@ -180,6 +180,7 @@ static void Arena_mark(void *data) {
|
|
180
180
|
static void Arena_free(void *data) {
|
181
181
|
Arena *arena = data;
|
182
182
|
upb_arena_free(arena->arena);
|
183
|
+
xfree(arena);
|
183
184
|
}
|
184
185
|
|
185
186
|
static VALUE cArena;
|
@@ -237,8 +238,16 @@ void Arena_register(VALUE module) {
|
|
237
238
|
// We use WeakMap for the cache. For Ruby <2.7 we also need a secondary Hash
|
238
239
|
// to store WeakMap keys because Ruby <2.7 WeakMap doesn't allow non-finalizable
|
239
240
|
// keys.
|
240
|
-
|
241
|
-
|
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
|
242
251
|
#define USE_SECONDARY_MAP 0
|
243
252
|
#else
|
244
253
|
#define USE_SECONDARY_MAP 1
|
@@ -325,7 +334,7 @@ static VALUE SecondaryMap_Get(VALUE key, bool create) {
|
|
325
334
|
VALUE ret = rb_hash_lookup(secondary_map, key);
|
326
335
|
if (ret == Qnil && create) {
|
327
336
|
SecondaryMap_MaybeGC();
|
328
|
-
ret =
|
337
|
+
ret = rb_class_new_instance(0, NULL, rb_cObject);
|
329
338
|
rb_hash_aset(secondary_map, key, ret);
|
330
339
|
}
|
331
340
|
return ret;
|
@@ -335,11 +344,9 @@ static VALUE SecondaryMap_Get(VALUE key, bool create) {
|
|
335
344
|
|
336
345
|
// Requires: secondary_map_mutex is held by this thread iff create == true.
|
337
346
|
static VALUE ObjectCache_GetKey(const void* key, bool create) {
|
338
|
-
|
339
|
-
|
340
|
-
|
341
|
-
PBRUBY_ASSERT((key_int & 3) == 0);
|
342
|
-
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);
|
343
350
|
#if USE_SECONDARY_MAP
|
344
351
|
ret = SecondaryMap_Get(ret, create);
|
345
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.
|
4
|
+
version: 3.17.0
|
5
5
|
platform: x86-mingw32
|
6
6
|
authors:
|
7
7
|
- Protobuf Authors
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-05-12 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.
|
131
|
+
source_code_uri: https://github.com/protocolbuffers/protobuf/tree/v3.17.0/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:
|
148
|
+
version: '0'
|
149
149
|
requirements: []
|
150
150
|
rubygems_version: 3.2.3
|
151
151
|
signing_key:
|