diff --git a/src/google/protobuf/compiler/objectivec/extension.cc b/src/google/protobuf/compiler/objectivec/extension.cc index b733518e9a..cbd4e2d52f 100644 --- a/src/google/protobuf/compiler/objectivec/extension.cc +++ b/src/google/protobuf/compiler/objectivec/extension.cc @@ -31,9 +31,8 @@ ExtensionGenerator::ExtensionGenerator( absl::string_view root_or_message_class_name, const FieldDescriptor* descriptor, const GenerationOptions& generation_options) - : method_name_(ExtensionMethodName(descriptor)), - full_method_name_( - absl::StrCat(root_or_message_class_name, "_", method_name_)), + : root_or_message_class_name_(root_or_message_class_name), + method_name_(ExtensionMethodName(descriptor)), descriptor_(descriptor), generation_options_(generation_options) { ABSL_CHECK(!descriptor->is_map()) @@ -90,16 +89,17 @@ void ExtensionGenerator::GenerateStaticVariablesInitialization( {"extended_type", ObjCClass(containing_type)}, {"extension_type", absl::StrCat("GPBDataType", GetCapitalizedType(descriptor_))}, + {"method_name", method_name_}, {"number", descriptor_->number()}, {"options", BuildFlagsString(FLAGTYPE_EXTENSION, options)}, - {"full_method_name", full_method_name_}, + {"root_or_message_class_name", root_or_message_class_name_}, {"type", objc_type == OBJECTIVECTYPE_MESSAGE ? ObjCClass(ClassName(descriptor_->message_type())) : "Nil"}}, R"objc( { .defaultValue.$default_name$ = $default$, - .singletonName = GPBStringifySymbol($full_method_name$), + .singletonName = GPBStringifySymbol($root_or_message_class_name$) "_$method_name$", .extendedClass.clazz = $extended_type$, .messageOrGroupClass.clazz = $type$, .enumDescriptorFunc = $enum_desc_func_name$, diff --git a/src/google/protobuf/compiler/objectivec/extension.h b/src/google/protobuf/compiler/objectivec/extension.h index ae1cd40bc4..8cdcd8ca6a 100644 --- a/src/google/protobuf/compiler/objectivec/extension.h +++ b/src/google/protobuf/compiler/objectivec/extension.h @@ -40,8 +40,8 @@ class ExtensionGenerator { absl::flat_hash_set* deps) const; private: + std::string root_or_message_class_name_; std::string method_name_; - std::string full_method_name_; const FieldDescriptor* descriptor_; const GenerationOptions& generation_options_; };