src/list.c

changeset 1287
3a3ffc27813f
parent 1163
68ff0839bc6a
equal deleted inserted replaced
1286:5492e8ef05f4 1287:3a3ffc27813f
492 492
493 void cxListFree(CxList *list) { 493 void cxListFree(CxList *list) {
494 if (list == NULL) return; 494 if (list == NULL) return;
495 list->cl->deallocate(list); 495 list->cl->deallocate(list);
496 } 496 }
497
498 int cxListSet(
499 CxList *list,
500 size_t index,
501 const void *elem
502 ) {
503 if (index >= list->collection.size) {
504 return 1;
505 }
506
507 if (list->collection.store_pointer) {
508 // For pointer collections, always use climpl
509 void **target = list->climpl->at(list, index);
510 *target = (void *)elem;
511 } else {
512 void *target = list->cl->at(list, index);
513 memcpy(target, elem, list->collection.elem_size);
514 }
515
516 return 0;
517 }

mercurial