Skip to content

Commit 50a94b8

Browse files
committed
Allow multiple 'parcelable' declarations in aidl files
This solves a problem with declaring multiple Parcelable static inner classes. Change-Id: I5e42b412d6d937df19a388988be5aa58a8dbc3e4
1 parent 31bc7f9 commit 50a94b8

File tree

1 file changed

+2
-4
lines changed

1 file changed

+2
-4
lines changed

tools/aidl/aidl.cpp

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -590,17 +590,15 @@ exactly_one_interface(const char* filename, const document_item_type* items, con
590590
}
591591

592592
const document_item_type* next = items->next;
593-
if (items->next != NULL) {
593+
// Allow parcelables to skip the "one-only" rule.
594+
if (items->next != NULL && next->item_type != USER_DATA_TYPE) {
594595
int lineno = -1;
595596
if (next->item_type == INTERFACE_TYPE_BINDER) {
596597
lineno = ((interface_type*)next)->interface_token.lineno;
597598
}
598599
else if (next->item_type == INTERFACE_TYPE_RPC) {
599600
lineno = ((interface_type*)next)->interface_token.lineno;
600601
}
601-
else if (next->item_type == USER_DATA_TYPE) {
602-
lineno = ((user_data_type*)next)->keyword_token.lineno;
603-
}
604602
fprintf(stderr, "%s:%d aidl can only handle one interface per file\n",
605603
filename, lineno);
606604
return 1;

0 commit comments

Comments
 (0)