summaryrefslogtreecommitdiff
path: root/Zend
diff options
context:
space:
mode:
Diffstat (limited to 'Zend')
-rw-r--r--Zend/zend_ast.h7
-rw-r--r--Zend/zend_language_parser.y2
2 files changed, 7 insertions, 2 deletions
diff --git a/Zend/zend_ast.h b/Zend/zend_ast.h
index 886b106228..d5396e7041 100644
--- a/Zend/zend_ast.h
+++ b/Zend/zend_ast.h
@@ -266,5 +266,10 @@ static zend_always_inline zend_ast *zend_ast_create_assign_op(uint32_t opcode, z
static zend_always_inline zend_ast *zend_ast_create_cast(uint32_t type, zend_ast *op0) {
return zend_ast_create_ex(ZEND_AST_CAST, type, op0);
}
-
+static zend_always_inline void zend_ast_list_rtrim(zend_ast *ast) {
+ zend_ast_list *list = zend_ast_get_list(ast);
+ if (list->child[list->children - 1] == NULL) {
+ list->children--;
+ }
+}
#endif
diff --git a/Zend/zend_language_parser.y b/Zend/zend_language_parser.y
index c37bd7f20c..3d38a4c853 100644
--- a/Zend/zend_language_parser.y
+++ b/Zend/zend_language_parser.y
@@ -1183,7 +1183,7 @@ property_name:
;
array_pair_list:
- non_empty_array_pair_list { /* allow single trailing comma */ zend_ast_list *list = zend_ast_get_list($$ = $1); if (list->child[list->children - 1] == NULL) { list->children--; } }
+ non_empty_array_pair_list { /* allow single trailing comma */ zend_ast_list_rtrim($$ = $1); }
;
possible_array_pair: