summaryrefslogtreecommitdiffstats
path: root/tools/aidl
diff options
context:
space:
mode:
authorJoe Onorato <joeo@google.com>2011-11-17 16:13:49 -0800
committerJoe Onorato <joeo@google.com>2011-11-17 16:13:49 -0800
commit6980de4ef9a67ed6227eecf5b059a8d2e3d470d2 (patch)
treebde66934acb0a09d561354fdee72955d905de8ab /tools/aidl
parent430d36fef9decb78f039a9713207548225244d17 (diff)
downloadframeworks_base-6980de4ef9a67ed6227eecf5b059a8d2e3d470d2.zip
frameworks_base-6980de4ef9a67ed6227eecf5b059a8d2e3d470d2.tar.gz
frameworks_base-6980de4ef9a67ed6227eecf5b059a8d2e3d470d2.tar.bz2
Don't try to unmarshal void return types when there are out parameters being returned.
Change-Id: Ib7d2a5609167a076dd7ee8e10e8a55056789517e
Diffstat (limited to 'tools/aidl')
-rw-r--r--tools/aidl/generate_java_rpc.cpp12
1 files changed, 7 insertions, 5 deletions
diff --git a/tools/aidl/generate_java_rpc.cpp b/tools/aidl/generate_java_rpc.cpp
index 852b0c1..18726c3 100644
--- a/tools/aidl/generate_java_rpc.cpp
+++ b/tools/aidl/generate_java_rpc.cpp
@@ -737,11 +737,13 @@ generate_result_dispatcher_method(const method_type* method,
// The return value
{
Type* t = NAMES.Search(method->type.type.data);
- Variable* rv = new Variable(t, "rv");
- dispatchMethod->statements->Add(new VariableDeclaration(rv));
- generate_create_from_data(t, dispatchMethod->statements, "_result", rv,
- resultData, &classLoader);
- realCall->arguments.push_back(rv);
+ if (t != VOID_TYPE) {
+ Variable* rv = new Variable(t, "rv");
+ dispatchMethod->statements->Add(new VariableDeclaration(rv));
+ generate_create_from_data(t, dispatchMethod->statements, "_result", rv,
+ resultData, &classLoader);
+ realCall->arguments.push_back(rv);
+ }
}
VariableFactory stubArgs("arg");