diff --git a/ruby/ext/google/protobuf_c/map.c b/ruby/ext/google/protobuf_c/map.c index c0c4cb2acc..7b78f87fc0 100644 --- a/ruby/ext/google/protobuf_c/map.c +++ b/ruby/ext/google/protobuf_c/map.c @@ -444,7 +444,7 @@ static VALUE Map_delete(VALUE _self, VALUE key) { Convert_RubyToUpb(key, "", Map_keyinfo(self), NULL); upb_MessageValue val_upb; - if (upb_Map_Delete(self->map, key_upb, &val_upb)) { + if (upb_Map_Delete(Map_GetMutable(_self), key_upb, &val_upb)) { return Convert_UpbToRuby(val_upb, self->value_type_info, self->arena); } else { return Qnil; diff --git a/ruby/ext/google/protobuf_c/shared_message.c b/ruby/ext/google/protobuf_c/shared_message.c index 7d140fbca4..761c544598 100644 --- a/ruby/ext/google/protobuf_c/shared_message.c +++ b/ruby/ext/google/protobuf_c/shared_message.c @@ -29,11 +29,11 @@ uint64_t shared_Message_Hash(const upb_Message* msg, const upb_MessageDef* m, uint64_t ret = _upb_Hash(data, size, seed); upb_Arena_Free(arena); return ret; - } else { - upb_Arena_Free(arena); - upb_Status_SetErrorMessage(status, "Error calculating hash"); - return 0; } + + upb_Arena_Free(arena); + upb_Status_SetErrorMessage(status, "Error calculating hash"); + return 0; } // Support function for Message_Equal @@ -59,8 +59,9 @@ bool shared_Message_Equal(const upb_Message* m1, const upb_Message* m2, bool ret = (size1 == size2) && (memcmp(data1, data2, size1) == 0); upb_Arena_Free(arena_tmp); return ret; - } else { - upb_Arena_Free(arena_tmp); - upb_Status_SetErrorMessage(status, "Error comparing messages"); } + + upb_Arena_Free(arena_tmp); + upb_Status_SetErrorMessage(status, "Error comparing messages"); + return 0; }