diff options
author | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2021-10-01 07:20:42 +0000 |
---|---|---|
committer | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2021-10-01 07:20:42 +0000 |
commit | 6e55e76580018a831a60b0e98cd84ccf31d50466 (patch) | |
tree | 9a501f24cc89133ea6082af6c53a9ebacaa2e1cb | |
parent | 67a3d73df071e72a39a9d872fd616b28c094a318 (diff) | |
parent | eeee2c9e187ef570c89ba557ebb6a38012aeda4c (diff) | |
download | aidl-android-12.0.0_r21.tar.gz |
Snap for 7783696 from eeee2c9e187ef570c89ba557ebb6a38012aeda4c to sc-qpr1-d-releaseandroid-12.0.0_r27android-12.0.0_r21android-12.0.0_r20android-12.0.0_r19android-12.0.0_r18android12-qpr1-d-s3-releaseandroid12-qpr1-d-s2-releaseandroid12-qpr1-d-s1-release
Change-Id: I24d010f376ba75a3f5580fbaee379f018988f654
4 files changed, 40 insertions, 26 deletions
diff --git a/generate_cpp.cpp b/generate_cpp.cpp index fcc27b69..619a2f2f 100644 --- a/generate_cpp.cpp +++ b/generate_cpp.cpp @@ -1227,6 +1227,13 @@ void BuildParcelFields(ClassDecl& clazz, const AidlStructuredParcelable& decl, } else { out << " { ::android::Parcelable::Stability::STABILITY_LOCAL }"; } + } else if (auto type = variable->GetType().GetDefinedType(); 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"; diff --git a/generate_ndk.cpp b/generate_ndk.cpp index c87c5c63..ca8d66cc 100644 --- a/generate_ndk.cpp +++ b/generate_ndk.cpp @@ -1046,6 +1046,13 @@ void GenerateParcelHeader(CodeWriter& out, const AidlTypenames& types, } if (variable->GetDefaultValue()) { out << " = " << variable->ValueString(ConstantValueDecorator); + } else if (auto type = variable->GetType().GetDefinedType(); 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 << " = " << NdkNameOf(types, variable->GetType(), StorageMode::STACK) << "(0)"; + } + } } out << ";\n"; } diff --git a/tests/golden_output/aidl-test-interface-cpp-source/gen/include/android/aidl/tests/StructuredParcelable.h b/tests/golden_output/aidl-test-interface-cpp-source/gen/include/android/aidl/tests/StructuredParcelable.h index 795c81ad..bfd1e58f 100644 --- a/tests/golden_output/aidl-test-interface-cpp-source/gen/include/android/aidl/tests/StructuredParcelable.h +++ b/tests/golden_output/aidl-test-interface-cpp-source/gen/include/android/aidl/tests/StructuredParcelable.h @@ -46,9 +46,9 @@ public: ::std::vector<int32_t> shouldContainThreeFs; int32_t f = int32_t(0); ::std::string shouldBeJerry; - ::android::aidl::tests::ByteEnum shouldBeByteBar; - ::android::aidl::tests::IntEnum shouldBeIntBar; - ::android::aidl::tests::LongEnum shouldBeLongBar; + ::android::aidl::tests::ByteEnum shouldBeByteBar = ::android::aidl::tests::ByteEnum(0); + ::android::aidl::tests::IntEnum shouldBeIntBar = ::android::aidl::tests::IntEnum(0); + ::android::aidl::tests::LongEnum shouldBeLongBar = ::android::aidl::tests::LongEnum(0); ::std::vector<::android::aidl::tests::ByteEnum> shouldContainTwoByteFoos; ::std::vector<::android::aidl::tests::IntEnum> shouldContainTwoIntFoos; ::std::vector<::android::aidl::tests::LongEnum> shouldContainTwoLongFoos; @@ -80,16 +80,16 @@ public: ::std::vector<int64_t> int64_1 = ::std::vector<int64_t>({1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L}); int32_t hexInt32_pos_1 = int32_t(1); int32_t hexInt64_pos_1 = int32_t(1); - ::android::aidl::tests::ConstantExpressionEnum const_exprs_1; - ::android::aidl::tests::ConstantExpressionEnum const_exprs_2; - ::android::aidl::tests::ConstantExpressionEnum const_exprs_3; - ::android::aidl::tests::ConstantExpressionEnum const_exprs_4; - ::android::aidl::tests::ConstantExpressionEnum const_exprs_5; - ::android::aidl::tests::ConstantExpressionEnum const_exprs_6; - ::android::aidl::tests::ConstantExpressionEnum const_exprs_7; - ::android::aidl::tests::ConstantExpressionEnum const_exprs_8; - ::android::aidl::tests::ConstantExpressionEnum const_exprs_9; - ::android::aidl::tests::ConstantExpressionEnum const_exprs_10; + ::android::aidl::tests::ConstantExpressionEnum const_exprs_1 = ::android::aidl::tests::ConstantExpressionEnum(0); + ::android::aidl::tests::ConstantExpressionEnum const_exprs_2 = ::android::aidl::tests::ConstantExpressionEnum(0); + ::android::aidl::tests::ConstantExpressionEnum const_exprs_3 = ::android::aidl::tests::ConstantExpressionEnum(0); + ::android::aidl::tests::ConstantExpressionEnum const_exprs_4 = ::android::aidl::tests::ConstantExpressionEnum(0); + ::android::aidl::tests::ConstantExpressionEnum const_exprs_5 = ::android::aidl::tests::ConstantExpressionEnum(0); + ::android::aidl::tests::ConstantExpressionEnum const_exprs_6 = ::android::aidl::tests::ConstantExpressionEnum(0); + ::android::aidl::tests::ConstantExpressionEnum const_exprs_7 = ::android::aidl::tests::ConstantExpressionEnum(0); + ::android::aidl::tests::ConstantExpressionEnum const_exprs_8 = ::android::aidl::tests::ConstantExpressionEnum(0); + ::android::aidl::tests::ConstantExpressionEnum const_exprs_9 = ::android::aidl::tests::ConstantExpressionEnum(0); + ::android::aidl::tests::ConstantExpressionEnum const_exprs_10 = ::android::aidl::tests::ConstantExpressionEnum(0); ::std::string addString1 = ::std::string("hello world!"); ::std::string addString2 = ::std::string("The quick brown fox jumps over the lazy dog."); int32_t shouldSetBit0AndBit2 = int32_t(0); diff --git a/tests/golden_output/aidl-test-interface-ndk_platform-source/gen/include/aidl/android/aidl/tests/StructuredParcelable.h b/tests/golden_output/aidl-test-interface-ndk_platform-source/gen/include/aidl/android/aidl/tests/StructuredParcelable.h index 01fd7a30..b665af59 100644 --- a/tests/golden_output/aidl-test-interface-ndk_platform-source/gen/include/aidl/android/aidl/tests/StructuredParcelable.h +++ b/tests/golden_output/aidl-test-interface-ndk_platform-source/gen/include/aidl/android/aidl/tests/StructuredParcelable.h @@ -27,9 +27,9 @@ public: std::vector<int32_t> shouldContainThreeFs; int32_t f = 0; std::string shouldBeJerry; - ::aidl::android::aidl::tests::ByteEnum shouldBeByteBar; - ::aidl::android::aidl::tests::IntEnum shouldBeIntBar; - ::aidl::android::aidl::tests::LongEnum shouldBeLongBar; + ::aidl::android::aidl::tests::ByteEnum shouldBeByteBar = ::aidl::android::aidl::tests::ByteEnum(0); + ::aidl::android::aidl::tests::IntEnum shouldBeIntBar = ::aidl::android::aidl::tests::IntEnum(0); + ::aidl::android::aidl::tests::LongEnum shouldBeLongBar = ::aidl::android::aidl::tests::LongEnum(0); std::vector<::aidl::android::aidl::tests::ByteEnum> shouldContainTwoByteFoos; std::vector<::aidl::android::aidl::tests::IntEnum> shouldContainTwoIntFoos; std::vector<::aidl::android::aidl::tests::LongEnum> shouldContainTwoLongFoos; @@ -61,16 +61,16 @@ public: std::vector<int64_t> int64_1 = {1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L}; int32_t hexInt32_pos_1 = 1; int32_t hexInt64_pos_1 = 1; - ::aidl::android::aidl::tests::ConstantExpressionEnum const_exprs_1; - ::aidl::android::aidl::tests::ConstantExpressionEnum const_exprs_2; - ::aidl::android::aidl::tests::ConstantExpressionEnum const_exprs_3; - ::aidl::android::aidl::tests::ConstantExpressionEnum const_exprs_4; - ::aidl::android::aidl::tests::ConstantExpressionEnum const_exprs_5; - ::aidl::android::aidl::tests::ConstantExpressionEnum const_exprs_6; - ::aidl::android::aidl::tests::ConstantExpressionEnum const_exprs_7; - ::aidl::android::aidl::tests::ConstantExpressionEnum const_exprs_8; - ::aidl::android::aidl::tests::ConstantExpressionEnum const_exprs_9; - ::aidl::android::aidl::tests::ConstantExpressionEnum const_exprs_10; + ::aidl::android::aidl::tests::ConstantExpressionEnum const_exprs_1 = ::aidl::android::aidl::tests::ConstantExpressionEnum(0); + ::aidl::android::aidl::tests::ConstantExpressionEnum const_exprs_2 = ::aidl::android::aidl::tests::ConstantExpressionEnum(0); + ::aidl::android::aidl::tests::ConstantExpressionEnum const_exprs_3 = ::aidl::android::aidl::tests::ConstantExpressionEnum(0); + ::aidl::android::aidl::tests::ConstantExpressionEnum const_exprs_4 = ::aidl::android::aidl::tests::ConstantExpressionEnum(0); + ::aidl::android::aidl::tests::ConstantExpressionEnum const_exprs_5 = ::aidl::android::aidl::tests::ConstantExpressionEnum(0); + ::aidl::android::aidl::tests::ConstantExpressionEnum const_exprs_6 = ::aidl::android::aidl::tests::ConstantExpressionEnum(0); + ::aidl::android::aidl::tests::ConstantExpressionEnum const_exprs_7 = ::aidl::android::aidl::tests::ConstantExpressionEnum(0); + ::aidl::android::aidl::tests::ConstantExpressionEnum const_exprs_8 = ::aidl::android::aidl::tests::ConstantExpressionEnum(0); + ::aidl::android::aidl::tests::ConstantExpressionEnum const_exprs_9 = ::aidl::android::aidl::tests::ConstantExpressionEnum(0); + ::aidl::android::aidl::tests::ConstantExpressionEnum const_exprs_10 = ::aidl::android::aidl::tests::ConstantExpressionEnum(0); std::string addString1 = "hello world!"; std::string addString2 = "The quick brown fox jumps over the lazy dog."; int32_t shouldSetBit0AndBit2 = 0; |