Lines Matching refs:src1
1052 re_node_set_add_intersect (re_node_set *dest, const re_node_set *src1,
1056 if (src1->nelem == 0 || src2->nelem == 0)
1061 if (src1->nelem + src2->nelem + dest->nelem > dest->alloc)
1063 int new_alloc = src1->nelem + src2->nelem + dest->alloc;
1073 sbase = dest->nelem + src1->nelem + src2->nelem;
1074 i1 = src1->nelem - 1;
1079 if (src1->elems[i1] == src2->elems[i2])
1082 while (id >= 0 && dest->elems[id] > src1->elems[i1])
1085 if (id < 0 || dest->elems[id] != src1->elems[i1])
1086 dest->elems[--sbase] = src1->elems[i1];
1093 else if (src1->elems[i1] < src2->elems[i2])
1106 is = dest->nelem + src1->nelem + src2->nelem - 1;
1143 re_node_set_init_union (re_node_set *dest, const re_node_set *src1,
1147 if (src1 != NULL && src1->nelem > 0 && src2 != NULL && src2->nelem > 0)
1149 dest->alloc = src1->nelem + src2->nelem;
1156 if (src1 != NULL && src1->nelem > 0)
1157 return re_node_set_init_copy (dest, src1);
1164 for (i1 = i2 = id = 0 ; i1 < src1->nelem && i2 < src2->nelem ;)
1166 if (src1->elems[i1] > src2->elems[i2])
1171 if (src1->elems[i1] == src2->elems[i2])
1173 dest->elems[id++] = src1->elems[i1++];
1175 if (i1 < src1->nelem)
1177 memcpy (dest->elems + id, src1->elems + i1,
1178 (src1->nelem - i1) * sizeof (int));
1179 id += src1->nelem - i1;