Lines Matching refs:dest

1030 re_node_set_init_copy (re_node_set *dest, const re_node_set *src)
1032 dest->nelem = src->nelem;
1035 dest->alloc = dest->nelem;
1036 dest->elems = re_malloc (Idx, dest->alloc);
1037 if (BE (dest->elems == NULL, 0))
1039 dest->alloc = dest->nelem = 0;
1042 memcpy (dest->elems, src->elems, src->nelem * sizeof (Idx));
1045 re_node_set_init_empty (dest);
1051 Note: We assume dest->elems is NULL, when dest->alloc is 0. */
1055 re_node_set_add_intersect (re_node_set *dest, const re_node_set *src1,
1062 /* We need dest->nelem + 2 * elems_in_intersection; this is a
1064 if (src1->nelem + src2->nelem + dest->nelem > dest->alloc)
1066 Idx new_alloc = src1->nelem + src2->nelem + dest->alloc;
1067 Idx *new_elems = re_realloc (dest->elems, Idx, new_alloc);
1070 dest->elems = new_elems;
1071 dest->alloc = new_alloc;
1076 sbase = dest->nelem + src1->nelem + src2->nelem;
1079 id = dest->nelem - 1;
1085 while (REG_VALID_INDEX (id) && dest->elems[id] > src1->elems[i1])
1088 if (! REG_VALID_INDEX (id) || dest->elems[id] != src1->elems[i1])
1089 dest->elems[--sbase] = src1->elems[i1];
1108 id = dest->nelem - 1;
1109 is = dest->nelem + src1->nelem + src2->nelem - 1;
1115 dest->nelem += delta;
1119 if (dest->elems[is] > dest->elems[id])
1122 dest->elems[id + delta--] = dest->elems[is--];
1129 dest->elems[id + delta] = dest->elems[id];
1136 memcpy (dest->elems, dest->elems + sbase, delta * sizeof (Idx));
1146 re_node_set_init_union (re_node_set *dest, const re_node_set *src1,
1152 dest->alloc = src1->nelem + src2->nelem;
1153 dest->elems = re_malloc (Idx, dest->alloc);
1154 if (BE (dest->elems == NULL, 0))
1160 return re_node_set_init_copy (dest, src1);
1162 return re_node_set_init_copy (dest, src2);
1164 re_node_set_init_empty (dest);
1171 dest->elems[id++] = src2->elems[i2++];
1176 dest->elems[id++] = src1->elems[i1++];
1180 memcpy (dest->elems + id, src1->elems + i1,
1186 memcpy (dest->elems + id, src2->elems + i2,
1190 dest->nelem = id;
1199 re_node_set_merge (re_node_set *dest, const re_node_set *src)
1204 if (dest->alloc < 2 * src->nelem + dest->nelem)
1206 Idx new_alloc = 2 * (src->nelem + dest->alloc);
1207 Idx *new_buffer = re_realloc (dest->elems, Idx, new_alloc);
1210 dest->elems = new_buffer;
1211 dest->alloc = new_alloc;
1214 if (BE (dest->nelem == 0, 0))
1216 dest->nelem = src->nelem;
1217 memcpy (dest->elems, src->elems, src->nelem * sizeof (Idx));
1223 for (sbase = dest->nelem + 2 * src->nelem,
1224 is = src->nelem - 1, id = dest->nelem - 1;
1227 if (dest->elems[id] == src->elems[is])
1229 else if (dest->elems[id] < src->elems[is])
1230 dest->elems[--sbase] = src->elems[is--];
1231 else /* if (dest->elems[id] > src->elems[is]) */
1239 memcpy (dest->elems + sbase, src->elems, (is + 1) * sizeof (Idx));
1242 id = dest->nelem - 1;
1243 is = dest->nelem + 2 * src->nelem - 1;
1250 dest->nelem += delta;
1253 if (dest->elems[is] > dest->elems[id])
1256 dest->elems[id + delta--] = dest->elems[is--];
1263 dest->elems[id + delta] = dest->elems[id];
1267 memcpy (dest->elems, dest->elems + sbase,