Merge cherrypicks of [17395477] into security-aosp-qt-release.
Change-Id: I6a65efc1be792cea73686a461cfc0b0c517d0447
diff --git a/generate_cpp.cpp b/generate_cpp.cpp
index 9d2a1fb..fb7f5f1 100644
--- a/generate_cpp.cpp
+++ b/generate_cpp.cpp
@@ -1021,6 +1021,9 @@
if (variable->GetDefaultValue()) {
out << " = " << type->CppType().c_str() << "("
<< variable->ValueString(ConstantValueDecorator) << ")";
+ } else if (AidlTypenames::IsPrimitiveTypename(variable->GetType().GetName()) &&
+ !variable->GetType().IsArray()) {
+ out << " = {}";
}
out << ";\n";
diff --git a/generate_ndk.cpp b/generate_ndk.cpp
index f0445f7..f382861 100644
--- a/generate_ndk.cpp
+++ b/generate_ndk.cpp
@@ -774,6 +774,9 @@
out << NdkNameOf(types, variable->GetType(), StorageMode::STACK) << " " << variable->GetName();
if (variable->GetDefaultValue()) {
out << " = " << variable->ValueString(AidlConstantValueDecorator);
+ } else if (AidlTypenames::IsPrimitiveTypename(variable->GetType().GetName()) &&
+ !variable->GetType().IsArray()) {
+ out << " = {}";
}
out << ";\n";
}
diff --git a/tests/android/aidl/tests/StructuredParcelable.aidl b/tests/android/aidl/tests/StructuredParcelable.aidl
index 2ced1e8..34d3e6c 100644
--- a/tests/android/aidl/tests/StructuredParcelable.aidl
+++ b/tests/android/aidl/tests/StructuredParcelable.aidl
@@ -36,4 +36,15 @@
double checkDoubleFromFloat = 3.14f;
String[] checkStringArray1 = { "a", "b" };
@utf8InCpp String[] checkStringArray2 = { "a", "b" };
+
+ // primitive types will be initialized with {}.
+ boolean aBoolean;
+ byte aByte;
+ char aChar;
+ int anInt;
+ long aLong;
+ float aFloat;
+ double aDouble;
+ // arrays are not primitive type.
+ int[] anIntArray;
}