Auto-generate files after cl/806683268
diff --git a/php/ext/google/protobuf/php-upb.c b/php/ext/google/protobuf/php-upb.c
index 800f38c..11b92af 100644
--- a/php/ext/google/protobuf/php-upb.c
+++ b/php/ext/google/protobuf/php-upb.c
@@ -10216,6 +10216,17 @@
return false;
}
+ if ((table->UPB_PRIVATE(ext) & kUpb_ExtMode_IsMapEntry) &&
+ !upb_MiniTableEnum_CheckValue(sub, 0)) {
+ // An enum used in a map must include 0 as a value. This matches a check
+ // performed in protoc ("Enum value in map must define 0 as the first
+ // value"). Protoc should ensure that we never get here.
+ //
+ // This ends up being important if we receive wire messages where a map
+ // entry omits the value (and thus defaults to 0).
+ return false;
+ }
+
upb_MiniTableSub* table_sub =
(void*)&table->UPB_PRIVATE(subs)[field->UPB_PRIVATE(submsg_index)];
*table_sub = upb_MiniTableSub_FromEnum(sub);
diff --git a/ruby/ext/google/protobuf_c/ruby-upb.c b/ruby/ext/google/protobuf_c/ruby-upb.c
index a6c46fa..3f7c082 100644
--- a/ruby/ext/google/protobuf_c/ruby-upb.c
+++ b/ruby/ext/google/protobuf_c/ruby-upb.c
@@ -9093,6 +9093,17 @@
return false;
}
+ if ((table->UPB_PRIVATE(ext) & kUpb_ExtMode_IsMapEntry) &&
+ !upb_MiniTableEnum_CheckValue(sub, 0)) {
+ // An enum used in a map must include 0 as a value. This matches a check
+ // performed in protoc ("Enum value in map must define 0 as the first
+ // value"). Protoc should ensure that we never get here.
+ //
+ // This ends up being important if we receive wire messages where a map
+ // entry omits the value (and thus defaults to 0).
+ return false;
+ }
+
upb_MiniTableSub* table_sub =
(void*)&table->UPB_PRIVATE(subs)[field->UPB_PRIVATE(submsg_index)];
*table_sub = upb_MiniTableSub_FromEnum(sub);