Lines Matching refs:dest

1015 re_node_set_init_copy (re_node_set *dest, const re_node_set *src)
1017 dest->nelem = src->nelem;
1020 dest->alloc = dest->nelem;
1021 dest->elems = re_malloc (int, dest->alloc);
1022 if (BE (dest->elems == NULL, 0))
1024 dest->alloc = dest->nelem = 0;
1027 memcpy (dest->elems, src->elems, src->nelem * sizeof (int));
1030 re_node_set_init_empty (dest);
1036 Note: We assume dest->elems is NULL, when dest->alloc is 0. */
1040 re_node_set_add_intersect (re_node_set *dest, const re_node_set *src1,
1047 /* We need dest->nelem + 2 * elems_in_intersection; this is a
1049 if (src1->nelem + src2->nelem + dest->nelem > dest->alloc)
1051 int new_alloc = src1->nelem + src2->nelem + dest->alloc;
1052 int *new_elems = re_realloc (dest->elems, int, new_alloc);
1055 dest->elems = new_elems;
1056 dest->alloc = new_alloc;
1061 sbase = dest->nelem + src1->nelem + src2->nelem;
1064 id = dest->nelem - 1;
1070 while (id >= 0 && dest->elems[id] > src1->elems[i1])
1073 if (id < 0 || dest->elems[id] != src1->elems[i1])
1074 dest->elems[--sbase] = src1->elems[i1];
1093 id = dest->nelem - 1;
1094 is = dest->nelem + src1->nelem + src2->nelem - 1;
1100 dest->nelem += delta;
1104 if (dest->elems[is] > dest->elems[id])
1107 dest->elems[id + delta--] = dest->elems[is--];
1114 dest->elems[id + delta] = dest->elems[id];
1121 memcpy (dest->elems, dest->elems + sbase, delta * sizeof (int));
1131 re_node_set_init_union (re_node_set *dest, const re_node_set *src1,
1137 dest->alloc = src1->nelem + src2->nelem;
1138 dest->elems = re_malloc (int, dest->alloc);
1139 if (BE (dest->elems == NULL, 0))
1145 return re_node_set_init_copy (dest, src1);
1147 return re_node_set_init_copy (dest, src2);
1149 re_node_set_init_empty (dest);
1156 dest->elems[id++] = src2->elems[i2++];
1161 dest->elems[id++] = src1->elems[i1++];
1165 memcpy (dest->elems + id, src1->elems + i1,
1171 memcpy (dest->elems + id, src2->elems + i2,
1175 dest->nelem = id;
1184 re_node_set_merge (re_node_set *dest, const re_node_set *src)
1189 if (dest->alloc < 2 * src->nelem + dest->nelem)
1191 int new_alloc = 2 * (src->nelem + dest->alloc);
1192 int *new_buffer = re_realloc (dest->elems, int, new_alloc);
1195 dest->elems = new_buffer;
1196 dest->alloc = new_alloc;
1199 if (BE (dest->nelem == 0, 0))
1201 dest->nelem = src->nelem;
1202 memcpy (dest->elems, src->elems, src->nelem * sizeof (int));
1208 for (sbase = dest->nelem + 2 * src->nelem,
1209 is = src->nelem - 1, id = dest->nelem - 1; is >= 0 && id >= 0; )
1211 if (dest->elems[id] == src->elems[is])
1213 else if (dest->elems[id] < src->elems[is])
1214 dest->elems[--sbase] = src->elems[is--];
1215 else /* if (dest->elems[id] > src->elems[is]) */
1223 memcpy (dest->elems + sbase, src->elems, (is + 1) * sizeof (int));
1226 id = dest->nelem - 1;
1227 is = dest->nelem + 2 * src->nelem - 1;
1234 dest->nelem += delta;
1237 if (dest->elems[is] > dest->elems[id])
1240 dest->elems[id + delta--] = dest->elems[is--];
1247 dest->elems[id + delta] = dest->elems[id];
1251 memcpy (dest->elems, dest->elems + sbase,