summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Muhammad Qureshi <muhammadq@google.com> 2019-12-08 20:31:01 -0800
committer Muhammad Qureshi <muhammadq@google.com> 2020-01-08 17:02:22 -0800
commit01268dec135b49b3afa8f922cc4c6341b97dd72c (patch)
tree8191360fe58b2cb4938d1575a628c67cb5c18615
parentef19b08b05f23849dd6475eaac77202750c8583c (diff)
Handle nulls in Java autogeneration
Bug: 143979391 Test: m -j Change-Id: I93146faa1976cac195c2250832d12ee4a09ae969 Merged-In: I93146faa1976cac195c2250832d12ee4a09ae969
-rw-r--r--tools/stats_log_api_gen/java_writer.cpp13
1 files changed, 8 insertions, 5 deletions
diff --git a/tools/stats_log_api_gen/java_writer.cpp b/tools/stats_log_api_gen/java_writer.cpp
index ddcca524d63d..c0b622f318fa 100644
--- a/tools/stats_log_api_gen/java_writer.cpp
+++ b/tools/stats_log_api_gen/java_writer.cpp
@@ -83,7 +83,7 @@ static int write_java_methods(
// Print method body.
string indent("");
if (DEFAULT_MODULE_NAME != moduleName) {
- fprintf(out, " if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {\n");
+ fprintf(out, " if (Build.VERSION.SDK_INT > Build.VERSION_CODES.Q) {\n");
indent = " ";
}
@@ -116,16 +116,19 @@ static int write_java_methods(
fprintf(out, "%s builder.writeString(arg%d);\n", indent.c_str(), argIndex);
break;
case JAVA_TYPE_BYTE_ARRAY:
- fprintf(out, "%s builder.writeByteArray(arg%d);\n",
- indent.c_str(), argIndex);
+ fprintf(out, "%s builder.writeByteArray(null == arg%d ? new byte[0] : arg%d);\n",
+ indent.c_str(), argIndex, argIndex);
break;
case JAVA_TYPE_ATTRIBUTION_CHAIN:
{
const char* uidName = attributionDecl.fields.front().name.c_str();
const char* tagName = attributionDecl.fields.back().name.c_str();
- fprintf(out, "%s builder.writeAttributionChain(%s, %s);\n",
- indent.c_str(), uidName, tagName);
+ fprintf(out, "%s builder.writeAttributionChain(\n", indent.c_str());
+ fprintf(out, "%s null == %s ? new int[0] : %s,\n",
+ indent.c_str(), uidName, uidName);
+ fprintf(out, "%s null == %s ? new String[0] : %s);\n",
+ indent.c_str(), tagName, tagName);
break;
}
case JAVA_TYPE_KEY_VALUE_PAIR: