From 0cac866203c8eac402445ca7bcc281320963744b Mon Sep 17 00:00:00 2001 From: Steven Moreland Date: Fri, 8 Oct 2021 16:43:29 -0700 Subject: 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 --- generate_java.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'generate_java.cpp') 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& describe bool CanDescribeContents(const AidlTypeSpecifier& type, const AidlTypenames& types, set* 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; } -- cgit v1.2.3