Clean up interfaceChain's implementation.
Use the initialize list constructor. Output looks like this:
_hidl_cb({
IFoo::descriptor,
::android::hidl::base::V1_0::IBase::descriptor,
});
Test: hidl_test
Change-Id: I31df5eb61721ac7b02df958e49ca9837c17c869b
diff --git a/Interface.cpp b/Interface.cpp
index 9276839..602b221 100644
--- a/Interface.cpp
+++ b/Interface.cpp
@@ -92,14 +92,13 @@
HIDL_DESCRIPTOR_CHAIN_TRANSACTION,
[this](auto &out) { /* cppImpl */
std::vector<const Interface *> chain = typeChain();
- out << "::android::hardware::hidl_vec<::android::hardware::hidl_string> _hidl_return;\n";
- out << "_hidl_return.resize(" << chain.size() << ");\n";
- for (size_t i = 0; i < chain.size(); ++i) {
- out << "_hidl_return[" << i << "] = "
- << chain[i]->fullName()
- << "::descriptor;\n";
- }
- out << "_hidl_cb(_hidl_return);\n";
+ out << "_hidl_cb(";
+ out.block([&] {
+ for (const Interface *iface : chain) {
+ out << iface->fullName() << "::descriptor,\n";
+ }
+ });
+ out << ");\n";
out << "return ::android::hardware::Void();";
},
[this](auto &out) { /* javaImpl */