Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 50a94b86 authored by Adam Powell's avatar Adam Powell
Browse files

Allow multiple 'parcelable' declarations in aidl files

This solves a problem with declaring multiple Parcelable static inner
classes.

Change-Id: I5e42b412d6d937df19a388988be5aa58a8dbc3e4
parent 31bc7f9f
Loading
Loading
Loading
Loading
+2 −4
Original line number Original line Diff line number Diff line
@@ -590,7 +590,8 @@ exactly_one_interface(const char* filename, const document_item_type* items, con
    }
    }


    const document_item_type* next = items->next;
    const document_item_type* next = items->next;
    if (items->next != NULL) {
    // Allow parcelables to skip the "one-only" rule.
    if (items->next != NULL && next->item_type != USER_DATA_TYPE) {
        int lineno = -1;
        int lineno = -1;
        if (next->item_type == INTERFACE_TYPE_BINDER) {
        if (next->item_type == INTERFACE_TYPE_BINDER) {
            lineno = ((interface_type*)next)->interface_token.lineno;
            lineno = ((interface_type*)next)->interface_token.lineno;
@@ -598,9 +599,6 @@ exactly_one_interface(const char* filename, const document_item_type* items, con
        else if (next->item_type == INTERFACE_TYPE_RPC) {
        else if (next->item_type == INTERFACE_TYPE_RPC) {
            lineno = ((interface_type*)next)->interface_token.lineno;
            lineno = ((interface_type*)next)->interface_token.lineno;
        }
        }
        else if (next->item_type == USER_DATA_TYPE) {
            lineno = ((user_data_type*)next)->keyword_token.lineno;
        }
        fprintf(stderr, "%s:%d aidl can only handle one interface per file\n",
        fprintf(stderr, "%s:%d aidl can only handle one interface per file\n",
                            filename, lineno);
                            filename, lineno);
        return 1;
        return 1;