google-protobuf 3.17.2 → 3.19.4
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/convert.c +4 -5
- data/ext/google/protobuf_c/defs.c +26 -1326
- data/ext/google/protobuf_c/extconf.rb +0 -1
- data/ext/google/protobuf_c/map.c +3 -0
- data/ext/google/protobuf_c/message.c +3 -3
- data/ext/google/protobuf_c/repeated_field.c +1 -1
- data/ext/google/protobuf_c/ruby-upb.c +604 -291
- data/ext/google/protobuf_c/ruby-upb.h +420 -127
- data/lib/google/protobuf/api_pb.rb +1 -0
- data/lib/google/protobuf/descriptor_dsl.rb +458 -0
- data/lib/google/protobuf/descriptor_pb.rb +268 -0
- data/lib/google/protobuf/type_pb.rb +1 -0
- data/lib/google/protobuf/well_known_types.rb +5 -0
- data/lib/google/protobuf.rb +1 -69
- data/tests/basic.rb +38 -1
- data/tests/stress.rb +1 -1
- metadata +8 -27
- data/ext/google/protobuf_c/third_party/wyhash/wyhash.h +0 -145
data/ext/google/protobuf_c/map.c
CHANGED
@@ -680,7 +680,10 @@ void Map_register(VALUE module) {
|
|
680
680
|
rb_define_method(klass, "delete", Map_delete, 1);
|
681
681
|
rb_define_method(klass, "clear", Map_clear, 0);
|
682
682
|
rb_define_method(klass, "length", Map_length, 0);
|
683
|
+
rb_define_method(klass, "size", Map_length, 0);
|
683
684
|
rb_define_method(klass, "dup", Map_dup, 0);
|
685
|
+
// Also define #clone so that we don't inherit Object#clone.
|
686
|
+
rb_define_method(klass, "clone", Map_dup, 0);
|
684
687
|
rb_define_method(klass, "==", Map_eq, 1);
|
685
688
|
rb_define_method(klass, "freeze", Map_freeze, 0);
|
686
689
|
rb_define_method(klass, "hash", Map_hash, 0);
|
@@ -35,7 +35,6 @@
|
|
35
35
|
#include "map.h"
|
36
36
|
#include "protobuf.h"
|
37
37
|
#include "repeated_field.h"
|
38
|
-
#include "third_party/wyhash/wyhash.h"
|
39
38
|
|
40
39
|
static VALUE cParseError = Qnil;
|
41
40
|
static ID descriptor_instancevar_interned;
|
@@ -717,7 +716,7 @@ uint64_t Message_Hash(const upb_msg* msg, const upb_msgdef* m, uint64_t seed) {
|
|
717
716
|
&size);
|
718
717
|
|
719
718
|
if (data) {
|
720
|
-
uint64_t ret =
|
719
|
+
uint64_t ret = Wyhash(data, size, seed, kWyhashSalt);
|
721
720
|
upb_arena_free(arena);
|
722
721
|
return ret;
|
723
722
|
} else {
|
@@ -1013,7 +1012,6 @@ static VALUE Message_decode_json(int argc, VALUE* argv, VALUE klass) {
|
|
1013
1012
|
*/
|
1014
1013
|
static VALUE Message_encode(VALUE klass, VALUE msg_rb) {
|
1015
1014
|
Message* msg = ruby_to_Message(msg_rb);
|
1016
|
-
upb_arena *arena = upb_arena_new();
|
1017
1015
|
const char *data;
|
1018
1016
|
size_t size;
|
1019
1017
|
|
@@ -1021,6 +1019,8 @@ static VALUE Message_encode(VALUE klass, VALUE msg_rb) {
|
|
1021
1019
|
rb_raise(rb_eArgError, "Message of wrong type.");
|
1022
1020
|
}
|
1023
1021
|
|
1022
|
+
upb_arena *arena = upb_arena_new();
|
1023
|
+
|
1024
1024
|
data = upb_encode(msg->msg, upb_msgdef_layout(msg->msgdef), arena,
|
1025
1025
|
&size);
|
1026
1026
|
|
@@ -34,7 +34,6 @@
|
|
34
34
|
#include "defs.h"
|
35
35
|
#include "message.h"
|
36
36
|
#include "protobuf.h"
|
37
|
-
#include "third_party/wyhash/wyhash.h"
|
38
37
|
|
39
38
|
// -----------------------------------------------------------------------------
|
40
39
|
// Repeated field container type.
|
@@ -552,6 +551,7 @@ VALUE RepeatedField_plus(VALUE _self, VALUE list) {
|
|
552
551
|
RepeatedField* dupped = ruby_to_RepeatedField(dupped_);
|
553
552
|
upb_array *dupped_array = RepeatedField_GetMutable(dupped_);
|
554
553
|
upb_arena* arena = Arena_get(dupped->arena);
|
554
|
+
Arena_fuse(list_rptfield->arena, arena);
|
555
555
|
int size = upb_array_size(list_rptfield->array);
|
556
556
|
int i;
|
557
557
|
|