summaryrefslogtreecommitdiff
path: root/tools/aidl/generate_java.cpp
diff options
context:
space:
mode:
authorElliott Hughes <enh@google.com>2011-07-14 13:28:00 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2011-07-14 13:28:00 -0700
commit49062e3b4cae08e41a0fee5002eee50d58a827db (patch)
treeeb8604fd9bf218162192b52ebd363aa2e667af30 /tools/aidl/generate_java.cpp
parentc1df573aedd20e9ac862765d068cc4e8fcdda953 (diff)
parentb9eba866b203b28e58f35598023f49b4b58a0635 (diff)
Merge "Fix aidl to cope with multiple collection types per method."
Diffstat (limited to 'tools/aidl/generate_java.cpp')
-rw-r--r--tools/aidl/generate_java.cpp19
1 files changed, 10 insertions, 9 deletions
diff --git a/tools/aidl/generate_java.cpp b/tools/aidl/generate_java.cpp
index 0f18132fc82e..83e3bbc26783 100644
--- a/tools/aidl/generate_java.cpp
+++ b/tools/aidl/generate_java.cpp
@@ -286,25 +286,25 @@ generate_write_to_parcel(Type* t, StatementBlock* addTo, Variable* v,
static void
generate_create_from_parcel(Type* t, StatementBlock* addTo, Variable* v,
- Variable* parcel)
+ Variable* parcel, Variable** cl)
{
if (v->dimension == 0) {
- t->CreateFromParcel(addTo, v, parcel);
+ t->CreateFromParcel(addTo, v, parcel, cl);
}
if (v->dimension == 1) {
- t->CreateArrayFromParcel(addTo, v, parcel);
+ t->CreateArrayFromParcel(addTo, v, parcel, cl);
}
}
static void
generate_read_from_parcel(Type* t, StatementBlock* addTo, Variable* v,
- Variable* parcel)
+ Variable* parcel, Variable** cl)
{
if (v->dimension == 0) {
- t->ReadFromParcel(addTo, v, parcel);
+ t->ReadFromParcel(addTo, v, parcel, cl);
}
if (v->dimension == 1) {
- t->ReadArrayFromParcel(addTo, v, parcel);
+ t->ReadArrayFromParcel(addTo, v, parcel, cl);
}
}
@@ -362,6 +362,7 @@ generate_method(const method_type* method, Class* interface,
"enforceInterface", 1, new LiteralExpression("DESCRIPTOR")));
// args
+ Variable* cl = NULL;
VariableFactory stubArgs("_arg");
arg = method->args;
while (arg != NULL) {
@@ -373,7 +374,7 @@ generate_method(const method_type* method, Class* interface,
if (convert_direction(arg->direction.data) & IN_PARAMETER) {
generate_create_from_parcel(t, c->statements, v,
- stubClass->transact_data);
+ stubClass->transact_data, &cl);
} else {
if (arg->type.dimension == 0) {
c->statements->Add(new Assignment(
@@ -531,7 +532,7 @@ generate_method(const method_type* method, Class* interface,
if (_reply != NULL) {
if (_result != NULL) {
generate_create_from_parcel(proxy->returnType,
- tryStatement->statements, _result, _reply);
+ tryStatement->statements, _result, _reply, &cl);
}
// the out/inout parameters
@@ -541,7 +542,7 @@ generate_method(const method_type* method, Class* interface,
Variable* v = new Variable(t, arg->name.data, arg->type.dimension);
if (convert_direction(arg->direction.data) & OUT_PARAMETER) {
generate_read_from_parcel(t, tryStatement->statements,
- v, _reply);
+ v, _reply, &cl);
}
arg = arg->next;
}