aboutsummaryrefslogtreecommitdiff
path: root/generate_java.cpp
diff options
context:
space:
mode:
authorSteven Moreland <smoreland@google.com>2021-10-08 16:43:29 -0700
committerSteven Moreland <smoreland@google.com>2021-10-13 16:07:54 +0000
commit0cac866203c8eac402445ca7bcc281320963744b (patch)
treeecfb5751a82f97d6def87fc79520c4e43452787c /generate_java.cpp
parentc29d717c12986564e33c896cccc2560615c83bce (diff)
downloadaidl-0cac866203c8eac402445ca7bcc281320963744b.tar.gz
Remove ArrayBase
This is the only place we really make copies of types. Removing it to make it easier to avoid copy constructors to make it easier to add invariants to the compiler. Bug: 201584220 Test: aidl_unittests Change-Id: I1898e7eeed866b3b175fcecc87a395ec701f75c8
Diffstat (limited to 'generate_java.cpp')
-rw-r--r--generate_java.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/generate_java.cpp b/generate_java.cpp
index 52c92d56..34dd5e1b 100644
--- a/generate_java.cpp
+++ b/generate_java.cpp
@@ -97,7 +97,12 @@ void GenerateDescribeContentsHelper(CodeWriter& out, const set<string>& describe
bool CanDescribeContents(const AidlTypeSpecifier& type, const AidlTypenames& types,
set<string>* describers) {
if (type.IsArray()) {
- if (CanDescribeContents(type.ArrayBase(), types, describers)) {
+ bool canDescribe = false;
+ type.ViewAsArrayBase([&](const AidlTypeSpecifier& base) {
+ canDescribe = CanDescribeContents(base, types, describers);
+ });
+
+ if (canDescribe) {
describers->insert("Array");
return true;
}