diff options
Diffstat (limited to 'tools/aidl/generate_java.cpp')
-rw-r--r-- | tools/aidl/generate_java.cpp | 19 |
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; } |