Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(47)

Unified Diff: third_party/protobuf/ruby/ext/google/protobuf_c/repeated_field.c

Issue 2600753002: Reverts third_party/protobuf: Update to HEAD (f52e188fe4) (Closed)
Patch Set: Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/protobuf/ruby/ext/google/protobuf_c/repeated_field.c
diff --git a/third_party/protobuf/ruby/ext/google/protobuf_c/repeated_field.c b/third_party/protobuf/ruby/ext/google/protobuf_c/repeated_field.c
index 1c651c192ddcf5d3181cd9d52fe4ddf546ff7bfc..83afbc915db46c39626e79a3d295a70d9da6df54 100644
--- a/third_party/protobuf/ruby/ext/google/protobuf_c/repeated_field.c
+++ b/third_party/protobuf/ruby/ext/google/protobuf_c/repeated_field.c
@@ -244,11 +244,6 @@ void* RepeatedField_index_native(VALUE _self, int index) {
return RepeatedField_memoryat(self, index, element_size);
}
-int RepeatedField_size(VALUE _self) {
- RepeatedField* self = ruby_to_RepeatedField(_self);
- return self->size;
-}
-
/*
* Private ruby method, used by RepeatedField.pop
*/
@@ -447,8 +442,9 @@ VALUE RepeatedField_eq(VALUE _self, VALUE _other) {
*/
VALUE RepeatedField_hash(VALUE _self) {
RepeatedField* self = ruby_to_RepeatedField(_self);
- st_index_t h = rb_hash_start(0);
- VALUE hash_sym = rb_intern("hash");
+
+ VALUE hash = LL2NUM(0);
+
upb_fieldtype_t field_type = self->field_type;
VALUE field_type_class = self->field_type_class;
size_t elem_size = native_slot_size(field_type);
@@ -456,11 +452,12 @@ VALUE RepeatedField_hash(VALUE _self) {
for (int i = 0; i < self->size; i++, off += elem_size) {
void* mem = ((uint8_t *)self->elements) + off;
VALUE elem = native_slot_get(field_type, field_type_class, mem);
- h = rb_hash_uint(h, NUM2LONG(rb_funcall(elem, hash_sym, 0)));
+ hash = rb_funcall(hash, rb_intern("<<"), 1, INT2NUM(2));
+ hash = rb_funcall(hash, rb_intern("^"), 1,
+ rb_funcall(elem, rb_intern("hash"), 0));
}
- h = rb_hash_end(h);
- return INT2FIX(h);
+ return hash;
}
/*
« no previous file with comments | « third_party/protobuf/ruby/ext/google/protobuf_c/protobuf.c ('k') | third_party/protobuf/ruby/ext/google/protobuf_c/storage.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698