Home | History | Annotate | Download | only in src

Lines Matching refs:ovector

112 /* Maximum number of ovector elements that can be saved on the system stack
113 when processing OP_RECURSE in non-HEAP_MATCH_RECURSE mode. If the ovector is
115 ovector length is always a multiple of 3. */
159 if (offset >= offset_top || mb->ovector[offset] == PCRE2_UNSET)
171 p = mb->start_subject + mb->ovector[offset];
172 length = mb->ovector[offset+1] - mb->ovector[offset];
417 pattern. The entire ovector must be saved and restored while processing
418 OP_RECURSE. If the ovector is small enough, instead of calling match()
420 to save the ovector while calling match() to process the pattern recursion. */
433 * Process OP_RECURSE, stacking ovector *
458 offset_top current top pointer (highest ovector offset used + 1)
480 /* Save the ovector */
483 memcpy(ovecsave, mb->ovector, mb->offset_end * sizeof(PCRE2_SIZE));
485 /* Do the recursion. After processing each alternative, restore the ovector
493 memcpy(mb->ovector, new_recursive->ovec_save,
565 offset_top current top pointer (highest ovector offset used + 1)
1009 save_offset1 = mb->ovector[offset];
1010 save_offset2 = mb->ovector[offset+1];
1011 save_offset3 = mb->ovector[mb->offset_end - number];
1015 mb->ovector[mb->offset_end - number] = eptr - mb->start_subject;
1052 mb->ovector[offset] = save_offset1;
1053 mb->ovector[offset+1] = save_offset2;
1054 mb->ovector[mb->offset_end - number] = save_offset3;
1147 here from BRAZERO with allow_zero set TRUE. The ovector values are
1152 reducing the amount of stack needed. If the ovector is too small for
1167 save_offset1 = mb->ovector[offset];
1168 save_offset2 = mb->ovector[offset+1];
1169 save_offset3 = mb->ovector[mb->offset_end - number];
1183 mb->ovector[mb->offset_end - number] = eptr - mb->start_subject;
1222 mb->ovector[offset] = save_offset1;
1223 mb->ovector[offset+1] = save_offset2;
1224 mb->ovector[mb->offset_end - number] = save_offset3;
1324 cb.offset_vector = mb->ovector;
1392 mb->ovector[offset] != PCRE2_UNSET;
1403 mb->ovector[offset] != PCRE2_UNSET;
1496 mb->ovector[offset] =
1497 mb->ovector[mb->offset_end - number];
1498 mb->ovector[offset+1] = eptr - mb->start_subject;
1506 register PCRE2_SIZE *iptr = mb->ovector + offset_top;
1507 register PCRE2_SIZE *iend = mb->ovector + offset;
1751 cb.offset_vector = mb->ovector;
1831 ovector while
1832 processing the pattern recursion, but only if the ovector is small
1852 /* If the ovector is too big, or if we are using the heap for match()
1853 recursion, we have to use the heap for saving the ovector. Used ovecsave
1870 memcpy(new_recursive.ovec_save, mb->ovector,
1874 ovector data and the last captured value. This code has the same overall
1877 ovector. */
1885 memcpy(mb->ovector, new_recursive.ovec_save,
2055 register PCRE2_SIZE *iptr = mb->ovector + offset_top;
2056 register PCRE2_SIZE *iend = mb->ovector + offset;
2062 mb->ovector[offset] = mb->ovector[mb->offset_end - number];
2063 mb->ovector[offset+1] = eptr - mb->start_subject;
2782 if (offset < offset_top && mb->ovector[offset] != PCRE2_UNSET) break;
2842 if (offset < offset_top && mb->ovector[offset] != PCRE2_UNSET)
2844 if (mb->ovector[offset] == mb->ovector[offset + 1]) continue;
2904 length = mb->ovector[offset+1] - mb->ovector[offset];
6434 Returns: > 0 => success; value is the number of ovector pairs filled
6435 = 0 => success, but ovector is not big enough
6705 we can use the vector supplied. The size of the ovector is three times the
6712 mb->ovector = (PCRE2_SIZE *)(mb->memctl.malloc(ocount * sizeof(PCRE2_SIZE),
6714 if (mb->ovector == NULL) return PCRE2_ERROR_NOMEMORY;
6720 mb->ovector = match_data->ovector;
6734 register PCRE2_SIZE *iptr = mb->ovector + ocount;
6736 if (iend < mb->ovector + 2) iend = mb->ovector + 2;
6738 mb->ovector[0] = mb->ovector[1] = PCRE2_UNSET;
7154 memcpy(match_data->ovector + 2, mb->ovector + 2,
7158 mb->memctl.free(mb->ovector, mb->memctl.memory_data);
7162 too many to fit into the ovector. */
7169 groups in the pattern (and are within the ovector) to PCRE2_UNSET. It is
7182 iptr = match_data->ovector + mb->end_offset_top;
7183 iend = match_data->ovector + 2 * resetcount;
7193 match_data->ovector[0] = mb->start_match_ptr - mb->start_subject;
7194 match_data->ovector[1] = mb->end_match_ptr - mb->start_subject;
7223 match_data->ovector[0] = match_partial - subject;
7224 match_data->ovector[1] = end_subject - subject;
7239 mb->memctl.free(mb->ovector, mb->memctl.memory_data);