summaryrefslogtreecommitdiffstats
path: root/tools/aidl
diff options
context:
space:
mode:
authorManuel Roman <manuelroman@google.com>2012-05-23 14:25:31 -0700
committerManuel Roman <manuelroman@google.com>2012-05-23 14:25:31 -0700
commit9d98a089756b692eefeae7f92cca15e121196e0c (patch)
tree8e2f4095f1845d2e410ba5da75b4116bd8f75b25 /tools/aidl
parent993f8a8c6518ac7d623af487c1b20835149ab673 (diff)
downloadframeworks_base-9d98a089756b692eefeae7f92cca15e121196e0c.zip
frameworks_base-9d98a089756b692eefeae7f92cca15e121196e0c.tar.gz
frameworks_base-9d98a089756b692eefeae7f92cca15e121196e0c.tar.bz2
Check result handler is not null
If caller passes a null result handler to the proxy methods, we need to check it when getting the result. Otherwise we try to invoke a method on a null object Change-Id: Ic2f456c36cb542b782b6a6d0d4d607ccf0987496
Diffstat (limited to 'tools/aidl')
-rw-r--r--tools/aidl/generate_java_rpc.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/tools/aidl/generate_java_rpc.cpp b/tools/aidl/generate_java_rpc.cpp
index 2b50b76..21ebb1f 100644
--- a/tools/aidl/generate_java_rpc.cpp
+++ b/tools/aidl/generate_java_rpc.cpp
@@ -784,7 +784,10 @@ generate_result_dispatcher_method(const method_type* method,
}
// Call the callback method
- dispatchMethod->statements->Add(realCall);
+ IfStatement* ifst = new IfStatement;
+ ifst->expression = new Comparison(new FieldVariable(THIS_VALUE, "callback"), "!=", NULL_VALUE);
+ dispatchMethod->statements->Add(ifst);
+ ifst->statements->Add(realCall);
}
static void