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 } |