src/list.c

changeset 1316
c41538edfcef
parent 1287
3a3ffc27813f
equal deleted inserted replaced
1315:b4c3e0b4c3d5 1316:c41538edfcef
60 60
61 static void cx_pl_destructor(struct cx_list_s *list) { 61 static void cx_pl_destructor(struct cx_list_s *list) {
62 list->climpl->deallocate(list); 62 list->climpl->deallocate(list);
63 } 63 }
64 64
65 static int cx_pl_insert_element( 65 static void *cx_pl_insert_element(
66 struct cx_list_s *list, 66 struct cx_list_s *list,
67 size_t index, 67 size_t index,
68 const void *element 68 const void *element
69 ) { 69 ) {
70 return list->climpl->insert_element(list, index, &element); 70 return list->climpl->insert_element(list, index, &element);
280 ) { 280 ) {
281 size_t elem_size = list->collection.elem_size; 281 size_t elem_size = list->collection.elem_size;
282 const char *src = data; 282 const char *src = data;
283 size_t i = 0; 283 size_t i = 0;
284 for (; i < n; i++) { 284 for (; i < n; i++) {
285 if (0 != invoke_list_func( 285 if (NULL == invoke_list_func(
286 insert_element, list, index + i, 286 insert_element, list, index + i,
287 src + (i * elem_size))) return i; 287 src + (i * elem_size))) return i;
288 } 288 }
289 return i; 289 return i;
290 } 290 }
327 ins++; 327 ins++;
328 } 328 }
329 329
330 // insert the elements at location si 330 // insert the elements at location si
331 if (ins == 1) { 331 if (ins == 1) {
332 if (0 != invoke_list_func( 332 if (NULL == invoke_list_func(
333 insert_element, list, di, src)) return inserted; 333 insert_element, list, di, src)) return inserted;
334 } else { 334 } else {
335 size_t r = invoke_list_func(insert_array, list, di, src, ins); 335 size_t r = invoke_list_func(insert_array, list, di, src, ins);
336 if (r < ins) return inserted + r; 336 if (r < ins) return inserted + r;
337 } 337 }

mercurial