fix: null-deref if parcelable contains untyped List

untyped List/Map is supported now.

Since untyped List can hold various types of objects including even
SparseArray. So we need to recursively iterate each element to figure
out if it (transitively) contains any file descriptor.

describeContents() calls helper "describeContents(Object)" to reduce
generated code size.

We can't put this helper to Parcelable because generated code needs to
support "sdk" variants as well which are built and run against older
frameworks.

Bug: 171321089
Test: aidl_unittests / aidl_integration_test
Test: m
Change-Id: Id7acd0536afb69d096e2ee9965210b4eb43401e2
2 files changed