unwrap descriptor class before comparison of RepeatedField types
self->field_type_class returns the correct Ruby class, get_def_obj returns the Descriptor object used to generate the Ruby class via msgclass, so to compare the two types we get the msgclass from the descriptor.
This commit is contained in:
parent
f39cf88a34
commit
c64830bbca
@ -598,7 +598,7 @@ static void check_repeated_field_type(VALUE val, const upb_fielddef* field) {
|
||||
if (self->field_type == UPB_TYPE_MESSAGE ||
|
||||
self->field_type == UPB_TYPE_ENUM) {
|
||||
if (self->field_type_class !=
|
||||
get_def_obj(upb_fielddef_subdef(field))) {
|
||||
Descriptor_msgclass(get_def_obj(upb_fielddef_subdef(field)))) {
|
||||
rb_raise(rb_eTypeError,
|
||||
"Repeated field array has wrong message/enum class");
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user