aboutsummaryrefslogtreecommitdiff
path: root/generate_java.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'generate_java.cpp')
-rw-r--r--generate_java.cpp5
1 files changed, 2 insertions, 3 deletions
diff --git a/generate_java.cpp b/generate_java.cpp
index 0d962035..d8512529 100644
--- a/generate_java.cpp
+++ b/generate_java.cpp
@@ -184,11 +184,12 @@ android::aidl::java::Class* generate_parcel_class(const AidlStructuredParcelable
out.str("");
out << " if (_aidl_parcel.dataPosition() - _aidl_start_pos >= _aidl_parcelable_size) return;\n";
- LiteralStatement* sizeCheck = nullptr;
+ string sizeCheck = out.str();
// keep this across different fields in order to create the classloader
// at most once.
bool is_classloader_created = false;
for (const auto& field : parcel->GetFields()) {
+ read_method->statements->Add(new LiteralStatement(sizeCheck));
string code;
CodeWriterPtr writer = CodeWriter::ForString(&code);
CodeGeneratorContext context{
@@ -203,8 +204,6 @@ android::aidl::java::Class* generate_parcel_class(const AidlStructuredParcelable
CreateFromParcelFor(context);
writer->Close();
read_method->statements->Add(new LiteralStatement(code));
- if (!sizeCheck) sizeCheck = new LiteralStatement(out.str());
- read_method->statements->Add(sizeCheck);
}
out.str("");