From ec73bb14d6e9e145c8fc17ae1a00df8a74ec46da Mon Sep 17 00:00:00 2001 From: Claudio DeSouza Date: Fri, 11 Jul 2025 15:08:50 +0100 Subject: [PATCH] [cr140] Mojo union's default constructor removed This has only affected a sanity test we had. Chromium changes: https://chromium.googlesource.com/chromium/src/+/16b2f60d4aa4b486601d3a90a25426eea2d825af commit 16b2f60d4aa4b486601d3a90a25426eea2d825af Author: Daniel Cheng Date: Thu Jun 26 15:49:40 2025 -0700 Remove use of Union default ctor in SmartCardProviderPrivateAPI Bug: 427778124 Change-Id: I75c559d19e8d10247bf5a75af9a8061396087248 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6681509 Reviewed-by: Reilly Grant Commit-Queue: Daniel Cheng Cr-Commit-Position: refs/heads/main@{#1479507} --- .../private_union_implementation.tmpl | 4 ++-- .../brave_ast_patcher_unittest.cc | 15 ++++++--------- 2 files changed, 8 insertions(+), 11 deletions(-) diff --git a/build/ios/mojom/objc_templates/private_union_implementation.tmpl b/build/ios/mojom/objc_templates/private_union_implementation.tmpl index 29a47f6266d..68515db6c27 100644 --- a/build/ios/mojom/objc_templates/private_union_implementation.tmpl +++ b/build/ios/mojom/objc_templates/private_union_implementation.tmpl @@ -100,7 +100,7 @@ - ({{cpp_namespace}}::{{union.name}}Ptr)cppObjPtr { - auto obj = {{cpp_namespace}}::{{union.name}}Ptr(std::in_place); + {{cpp_namespace}}::{{union.name}}Ptr obj; switch (self.tag) { case {{tag_enum_name}}Null: { break; @@ -108,7 +108,7 @@ {%- for field in union.fields %} {%- set field_tag = "%s%s"|format(tag_enum_name, field.name|objc_enum_formatter) %} case {{field_tag}}: { - obj->set_{{field.name}}({{field|objc_to_cpp_assign('self')}}); + obj = {{cpp_namespace}}::{{union.name}}::New{{field.name|under_to_camel}}({{field|objc_to_cpp_assign('self')}}); break; } {%- endfor %} diff --git a/mojo/brave_ast_patcher/brave_ast_patcher_unittest.cc b/mojo/brave_ast_patcher/brave_ast_patcher_unittest.cc index 2010eddff4f..4530f496bc8 100644 --- a/mojo/brave_ast_patcher/brave_ast_patcher_unittest.cc +++ b/mojo/brave_ast_patcher/brave_ast_patcher_unittest.cc @@ -60,9 +60,8 @@ TEST(BraveAstPatcherTest, OriginalTypes) { EXPECT_EQ(global_struct.nested_enum_member, GlobalStruct::NestedEnum::VALUE_NESTED_CONSTANT); - GlobalUnion global_union; - global_union.set_bool_value(false); - global_union.set_string_value(std::string()); + auto global_union = GlobalUnion::NewBoolValue(false); + global_union->set_string_value(std::string()); EXPECT_EQ(static_cast(GlobalInterface::NestedEnum::VALUE), 0); EXPECT_EQ( @@ -89,9 +88,8 @@ TEST(BraveAstPatcherTest, NewTypes) { new_global_struct.new_global_enum_member = NewGlobalEnum::VALUE; new_global_struct.nested_enum_member = NewGlobalStruct::NestedEnum::VALUE; - NewGlobalUnion new_global_union; - new_global_union.set_int32_value(0); - new_global_union.set_float_value(0.0f); + auto new_global_union = NewGlobalUnion::NewInt32Value(0); + new_global_union->set_float_value(0.0f); EXPECT_EQ(static_cast(NewGlobalInterface::NestedEnum::VALUE), 0); EXPECT_EQ( @@ -123,9 +121,8 @@ TEST(BraveAstPatcherTest, ExtendedTypes) { EXPECT_EQ(global_struct.new_nested_enum_member, GlobalStruct::NewNestedEnum::VALUE_NESTED_CONSTANT); - GlobalUnion global_union; - global_union.set_int32_value(0); - global_union.set_float_value(0.0f); + auto global_union = GlobalUnion::NewInt32Value(0); + global_union->set_float_value(0.0f); EXPECT_EQ(static_cast(GlobalInterface::NestedEnum::NEW_VALUE), 1); EXPECT_EQ(