diff options
Diffstat (limited to 'generate_cpp.cpp')
-rw-r--r-- | generate_cpp.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/generate_cpp.cpp b/generate_cpp.cpp index cc256573..bbee9b3a 100644 --- a/generate_cpp.cpp +++ b/generate_cpp.cpp @@ -1111,6 +1111,13 @@ std::unique_ptr<Document> BuildParcelHeader(const AidlTypenames& typenames, if (variable->GetDefaultValue()) { out << " = " << cppType.c_str() << "(" << variable->ValueString(ConstantValueDecorator) << ")"; + } else if (auto type = typenames.TryGetDefinedType(variable->GetType().GetName()); type) { + if (auto enum_type = type->AsEnumDeclaration(); enum_type) { + if (!variable->GetType().IsArray()) { + // if an enum doesn't have explicit default value, do zero-initialization + out << " = " << cppType << "(0)"; + } + } } out << ";\n"; |