@@ -655,7 +655,7 @@ _php_mb_regex_init_options(const char *parg, size_t narg, OnigOptionType *option
655
655
typedef struct mb_regex_groups_iter_args {
656
656
zval * groups ;
657
657
char * search_str ;
658
- int search_len ;
658
+ size_t search_len ;
659
659
OnigRegion * region ;
660
660
} mb_regex_groups_iter_args ;
661
661
/* }}} */
@@ -665,25 +665,19 @@ static int
665
665
mb_regex_groups_iter (const OnigUChar * name , const OnigUChar * name_end , int ngroup_num , int * group_nums , regex_t * reg , void * parg )
666
666
{
667
667
mb_regex_groups_iter_args * args = (mb_regex_groups_iter_args * ) parg ;
668
- int i , gn , ref , beg , end ;
669
-
670
- for (i = 0 ; i < ngroup_num ; i ++ ) {
671
- gn = group_nums [i ];
672
- ref = onig_name_to_backref_number (reg , name , name_end , args -> region );
673
- if (ref != gn ) {
674
- /*
675
- * In case of duplicate groups, keep only the last suceeding one
676
- * to be consistent with preg_match with the PCRE_DUPNAMES option.
677
- */
678
- continue ;
679
- }
680
- beg = args -> region -> beg [gn ];
681
- end = args -> region -> end [gn ];
682
- if (beg >= 0 && beg < end && end <= args -> search_len ) {
683
- add_assoc_stringl_ex (args -> groups , (char * )name , name_end - name , & args -> search_str [beg ], end - beg );
684
- } else {
685
- add_assoc_bool_ex (args -> groups , (char * )name , name_end - name , 0 );
686
- }
668
+ int gn , beg , end ;
669
+
670
+ /*
671
+ * In case of duplicate groups, keep only the last suceeding one
672
+ * to be consistent with preg_match with the PCRE_DUPNAMES option.
673
+ */
674
+ gn = onig_name_to_backref_number (reg , name , name_end , args -> region );
675
+ beg = args -> region -> beg [gn ];
676
+ end = args -> region -> end [gn ];
677
+ if (beg >= 0 && beg < end && end <= args -> search_len ) {
678
+ add_assoc_stringl_ex (args -> groups , (char * )name , name_end - name , & args -> search_str [beg ], end - beg );
679
+ } else {
680
+ add_assoc_bool_ex (args -> groups , (char * )name , name_end - name , 0 );
687
681
}
688
682
689
683
return 0 ;
0 commit comments