From 609c72ca1a7526f444a109bc04f861ad578e833d Mon Sep 17 00:00:00 2001 From: Maurice Sotzny Date: Mon, 14 Apr 2025 17:54:10 +0200 Subject: [PATCH] [C++] Fixes #8446 (#8447) Fixes access to union members when generating code with options "--cpp-field-case-style upper" and "--gen-object-api" Co-authored-by: Wouter van Oortmerssen --- src/idl_gen_cpp.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/idl_gen_cpp.cpp b/src/idl_gen_cpp.cpp index 37fbccc59..833d462f4 100644 --- a/src/idl_gen_cpp.cpp +++ b/src/idl_gen_cpp.cpp @@ -3193,7 +3193,7 @@ class CppGenerator : public BaseGenerator { const char *vec_type_access) { auto type_name = WrapInNameSpace(*afield.value.type.enum_def); return type_name + "Union::UnPack(" + "_e" + vec_elem_access + ", " + - EscapeKeyword(afield.name + UnionTypeFieldSuffix()) + "()" + + EscapeKeyword(Name(afield) + UnionTypeFieldSuffix()) + "()" + vec_type_access + ", _resolver)"; } @@ -3339,7 +3339,7 @@ class CppGenerator : public BaseGenerator { BASE_TYPE_UNION); // Generate code that sets the union type, of the form: // _o->field.type = _e; - code += "_o->" + union_field->name + ".type = _e;"; + code += "_o->" + Name(*union_field) + ".type = _e;"; break; } case BASE_TYPE_UNION: {