[Java hidl-gen] Fix multi-dimensional arrays (used within structures, not
as method arguments).
Bug: 31438033
Change-Id: I8e29ae8eca2a9ef8a320e37ca0bb79dcfa8a9b9a
diff --git a/CompoundType.cpp b/CompoundType.cpp
index 8a692c1..5c702c2 100644
--- a/CompoundType.cpp
+++ b/CompoundType.cpp
@@ -82,7 +82,9 @@
}
}
-std::string CompoundType::getJavaType() const {
+std::string CompoundType::getJavaType(
+ std::string *extra, bool /* forInitializer */) const {
+ extra->clear();
return fullJavaName();
}
@@ -208,6 +210,7 @@
void CompoundType::emitJavaFieldReaderWriter(
Formatter &out,
+ size_t /* depth */,
const std::string &blobName,
const std::string &fieldName,
const std::string &offset,
@@ -389,7 +392,13 @@
out << "HwBlob _hidl_blob = parcel.readBuffer();\n\n";
VectorType::EmitJavaFieldReaderWriterForElementType(
- out, this, "_hidl_blob", "_hidl_vec", "0", true /* isReader */);
+ out,
+ 0 /* depth */,
+ this,
+ "_hidl_blob",
+ "_hidl_vec",
+ "0",
+ true /* isReader */);
out << "\nreturn _hidl_vec.toArray(new "
<< localName()
@@ -418,6 +427,7 @@
field->type().emitJavaFieldReaderWriter(
out,
+ 0 /* depth */,
"_hidl_blob",
field->name(),
"_hidl_offset + " + std::to_string(offset),
@@ -495,7 +505,13 @@
out << "HwBlob _hidl_blob = new HwBlob(24 /* sizeof(hidl_vec<T>) */);\n";
VectorType::EmitJavaFieldReaderWriterForElementType(
- out, this, "_hidl_blob", "_hidl_vec", "0", false /* isReader */);
+ out,
+ 0 /* depth */,
+ this,
+ "_hidl_blob",
+ "_hidl_vec",
+ "0",
+ false /* isReader */);
out << "\nparcel.writeBuffer(_hidl_blob);\n";
@@ -522,6 +538,7 @@
field->type().emitJavaFieldReaderWriter(
out,
+ 0 /* depth */,
"_hidl_blob",
field->name(),
"_hidl_offset + " + std::to_string(offset),