Clean up ArrayType.cpp
mSizeComments are removed
mSizes are now a vector of ConstantExpression's
Bug: 32559427 clean up hidl-gen
Bug: 32592564 Remove extraneous comments from array type's sizes.
Test: hidl_test
Test: make hidl_test_java
Change-Id: I2a0dbf7e31a425ce851c9be3b413accdfcb79789
diff --git a/ArrayType.cpp b/ArrayType.cpp
index 2757bad..13c861e 100644
--- a/ArrayType.cpp
+++ b/ArrayType.cpp
@@ -25,8 +25,7 @@
ArrayType::ArrayType(ArrayType *srcArray, ConstantExpression *size)
: mElementType(srcArray->mElementType),
- mSizes(srcArray->mSizes),
- mSizeComments(srcArray->mSizeComments) {
+ mSizes(srcArray->mSizes) {
prependDimension(size);
}
@@ -36,13 +35,11 @@
}
void ArrayType::prependDimension(ConstantExpression *size) {
- mSizes.insert(mSizes.begin(), size->castSizeT());
- mSizeComments.insert(mSizeComments.begin(), size->description());
+ mSizes.insert(mSizes.begin(), size);
}
void ArrayType::appendDimension(ConstantExpression *size) {
- mSizes.push_back(size->castSizeT());
- mSizeComments.push_back(size->description());
+ mSizes.push_back(size);
}
size_t ArrayType::countDimensions() const {
@@ -72,11 +69,13 @@
for (size_t i = 0; i < mSizes.size(); ++i) {
arrayType += ", ";
- arrayType += std::to_string(mSizes[i]);
+ arrayType += mSizes[i]->cppValue();
- arrayType += " /* ";
- arrayType += mSizeComments[i];
- arrayType += " */";
+ if (!mSizes[i]->descriptionIsTrivial()) {
+ arrayType += " /* ";
+ arrayType += mSizes[i]->description();
+ arrayType += " */";
+ }
}
arrayType += ">";
@@ -105,16 +104,18 @@
extra->clear();
- CHECK(mSizes.size() == mSizeComments.size());
for (size_t i = 0; i < mSizes.size(); ++i) {
*extra += "[";
if (forInitializer) {
- *extra += std::to_string(mSizes[i]);
- *extra += " ";
+ *extra += mSizes[i]->javaValue();
}
- *extra += "/* " + mSizeComments[i] + " */";
+ if (!forInitializer || !mSizes[i]->descriptionIsTrivial()) {
+ if (forInitializer)
+ *extra += " ";
+ *extra += "/* " + mSizes[i]->description() + " */";
+ }
*extra += "]";
}
@@ -172,7 +173,7 @@
} else {
size_t numArrayElements = 1;
for (auto size : mSizes) {
- numArrayElements *= size;
+ numArrayElements *= size->castSizeT();
}
out << "_hidl_err = "
@@ -439,7 +440,7 @@
<< " = 0; "
<< iteratorName
<< " < "
- << mSizes[dim]
+ << mSizes[dim]->javaValue()
<< "; ++"
<< iteratorName
<< ") {\n";
@@ -490,7 +491,7 @@
out << "type: " << getVtsType() << "\n";
out << "vector_value: {\n";
out.indent();
- out << "vector_size: " << mSizes[0] << "\n";
+ out << "vector_size: " << mSizes[0]->value() << "\n";
// Simple array case.
if (mSizes.size() == 1) {
status_t err = mElementType->emitVtsTypeDeclarations(out);
@@ -502,7 +503,7 @@
out << "type: " << getVtsType() << "\n";
out << "vector_value: {\n";
out.indent();
- out << "vector_size: " << mSizes[index] << "\n";
+ out << "vector_size: " << mSizes[index]->value() << "\n";
if (index == mSizes.size() - 1) {
status_t err = mElementType->emitVtsTypeDeclarations(out);
if (err != OK) {
@@ -526,14 +527,14 @@
mElementType->getAlignmentAndSize(align, size);
for (auto sizeInDimension : mSizes) {
- (*size) *= sizeInDimension;
+ (*size) *= sizeInDimension->castSizeT();
}
}
size_t ArrayType::dimension() const {
size_t numArrayElements = 1;
for (auto size : mSizes) {
- numArrayElements *= size;
+ numArrayElements *= size->castSizeT();
}
return numArrayElements;
}