diff --git a/php/ext/google/protobuf/php-upb.c b/php/ext/google/protobuf/php-upb.c index 51d3d4257e12..7cb377805947 100644 --- a/php/ext/google/protobuf/php-upb.c +++ b/php/ext/google/protobuf/php-upb.c @@ -518,9 +518,9 @@ upb_MapInsertStatus upb_Map_Insert(upb_Map* map, upb_MessageValue key, bool upb_Map_Delete(upb_Map* map, upb_MessageValue key, upb_MessageValue* val) { upb_value v; - const bool ok = _upb_Map_Delete(map, &key, map->key_size, &v); - if (val) val->uint64_val = v.val; - return ok; + const bool removed = _upb_Map_Delete(map, &key, map->key_size, &v); + if (val) _upb_map_fromvalue(v, val, map->val_size); + return removed; } bool upb_Map_Next(const upb_Map* map, upb_MessageValue* key, diff --git a/protobuf_deps.bzl b/protobuf_deps.bzl index 69b0a4e2af45..8ce5284c231e 100644 --- a/protobuf_deps.bzl +++ b/protobuf_deps.bzl @@ -151,7 +151,7 @@ def protobuf_deps(): _github_archive( name = "upb", repo = "https://github.com/protocolbuffers/upb", - commit = "e8161b8d42d057a95cf38ea7bce223f84f24a656", - sha256 = "8de5c7e3210687fcea2d0a18e1ba1bca1f1f3a042e1f0bac06d93a12391c0050", + commit = "1956df14832979471d0c79210a817aeb54f7a526", + sha256 = "102039feae921205690d28561d6c74ba13e0561a76d7247de5df7d7cc8d72ca6", patches = ["@com_google_protobuf//build_defs:upb.patch"], ) diff --git a/ruby/ext/google/protobuf_c/ruby-upb.c b/ruby/ext/google/protobuf_c/ruby-upb.c index 09b506457b20..ef0dfba60d74 100644 --- a/ruby/ext/google/protobuf_c/ruby-upb.c +++ b/ruby/ext/google/protobuf_c/ruby-upb.c @@ -518,9 +518,9 @@ upb_MapInsertStatus upb_Map_Insert(upb_Map* map, upb_MessageValue key, bool upb_Map_Delete(upb_Map* map, upb_MessageValue key, upb_MessageValue* val) { upb_value v; - const bool ok = _upb_Map_Delete(map, &key, map->key_size, &v); - if (val) val->uint64_val = v.val; - return ok; + const bool removed = _upb_Map_Delete(map, &key, map->key_size, &v); + if (val) _upb_map_fromvalue(v, val, map->val_size); + return removed; } bool upb_Map_Next(const upb_Map* map, upb_MessageValue* key,