google-protobuf 3.17.3 → 3.19.2
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 +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 +603 -290
- 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 +30 -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
|
|