Extract repeating NODE references as a local variable

This commit is contained in:
Nobuyoshi Nakada 2024-01-09 13:04:26 +09:00
parent 37ed86fd3c
commit a4406bc89a
No known key found for this signature in database
GPG Key ID: 3582D74E1FEE4465

12
parse.y
View File

@ -6850,11 +6850,13 @@ assocs : assoc
assocs = tail; assocs = tail;
} }
else if (tail) { else if (tail) {
if (RNODE_LIST(assocs)->nd_head && if (RNODE_LIST(assocs)->nd_head) {
!RNODE_LIST(tail)->nd_head && nd_type_p(RNODE_LIST(tail)->nd_next, NODE_LIST) && NODE *n = RNODE_LIST(tail)->nd_next;
nd_type_p(RNODE_LIST(RNODE_LIST(tail)->nd_next)->nd_head, NODE_HASH)) { if (!RNODE_LIST(tail)->nd_head && nd_type_p(n, NODE_LIST) &&
/* DSTAR */ nd_type_p((n = RNODE_LIST(n)->nd_head), NODE_HASH)) {
tail = RNODE_HASH(RNODE_LIST(RNODE_LIST(tail)->nd_next)->nd_head)->nd_head; /* DSTAR */
tail = RNODE_HASH(n)->nd_head;
}
} }
assocs = list_concat(assocs, tail); assocs = list_concat(assocs, tail);
} }